Olá, tenho um formulário funcionando em meu site segue para exemplificar: A pergunta está no final do texto e é para Java, pois em PHP já está funcionando
Estas 2 páginas acima estão funcionando 100% já estão em prática e sendo usadas.
Eis que começa meu problema:
Não entendo muito de Java, mas um amigo fez em java o programa com um TextField com a variável “nome” e está enviando via post para a página online: meusite.com/cadastrar.phpdesta forma cadastra o banco de dados o nome preenchido no programa Java até aqui está tudo muito lindo
Porém ao criar um campo para anexar uma imagem JPG e enviar o “nome” e a “imagem” pelo programa Java, não recebo nada em POST, nem mesmo o “nome” que antes funcionava, neste meusite.com/cadasrtar.php
Será que alguém sabe como fazer para enviar o objeto/imagem do programinha em Java para uma página PHP?
Em PHP sei que no precisa do enctype=“multipart/form-data” para poder enviar imagens, mas em Java qual o método similar à este?
Desculpe, tentei apagar aquele, pois as respostas que obtive parece que não me fiz entender corretamente, resolvi reformular a pergunta mostrando que em PHP estava funcionando.
Java é um ecosistema muito grande, sem vc nos dizer qual tecnologia está usando fica mais dificil ajudarmos, imaginei que vc está usando jsp, por isso postei esse formato, mas pode ser JSF, Spring, etc…
Como disse não entendo de Java, um amigo que entende um pouco fez um programa que preencho o “nome” e aponta para o cadastrar.php, e funciona e grava no banco, adicionou um segundo campo de texto e também funcionou, depois ele retirou o segundo campo de texto, e adicionou uma imagem pra enviar no lugar do segundo campo de texto, à partir daí nem o primeiro campo de texto está chegando na página php
Segue um pedaço do código que ele disse que está tentando usar:
String urlParameters = "nome="+jTextField2.getText()+"&imagem="+arrayBase[0]; // a Imagem esta no arrayBase[0]
String url = "meusite.com/cadastrar.php";
byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
try {
URL myurl = new URL(url);
con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", "Java client");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
wr.write(postData);
} catch (IOException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.WARNING, null, ex);
}
StringBuilder content = null;
try (BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()))) {
String line;
content = new StringBuilder();
while ((line = in.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
} catch (IOException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.WARNING, null, ex);
JOptionPane.showMessageDialog(null, "Erro ao enviar confirmação de gravação da imagem", "ERRO", ERROR_MESSAGE );
}
JOptionPane.showMessageDialog(null, content.toString());
Cara nessa parte do URLConnection, da uma olhada nisso que talvez ajude…
Tem uns exemplos parecidos com o que vc está usando, só na parte do setRequestProperty que tem uns esqueminhas de data, boundary etc, talvez isso que esteja faltando pra enviar o arquivo certinho… boa sorte!