Problemas em enviar arquivo através de POST

3 respostas
M

Meu caso é o seguinte: a empresa onde entrei como estagiário quer que eu faça um código para ser usado junto com o programa deles que envie, através do HTTP.POST, um arquivo de log do formato da empresa de um desktop rodando o programa deles para um servidor rodando PHP.

Não sei muito de Sockets ainda, e não tá muito fácil achar exemplos para esse caso, pois a maior parte dos exemplos é para servlets onde você pode controlar o lado do servidor, o que não é meu caso... tá me faltando o 'pulo do gato' ainda...

O código que fiz até agora é o seguinte:
package net;

import java.io.File;
import java.net.URL;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.io.IOException;

public class HTTPConnection2 {

	public HTTPConnection2(){}
	
	public void post(String site, File file){
		try{
			URL url=new URL(site);
			HttpURLConnection conexao=(HttpURLConnection)url.openConnection();
			
			if(conexao.getResponseCode()==HttpURLConnection.HTTP_OK){
				conexao.setRequestMethod("POST");
				conexao.setRequestProperty("Content-type", "multipart/form-data");

				//	conexao.setRequestProperty("Content-Length", file.get??)
				
				
				conexao.disconnect();
			}
			
		}
		catch(MalformedURLException e){
			System.err.println(e.getMessage());
		}
		catch(IOException e){
			System.err.println(e.getMessage());
		}
	}
	
	public static void main(String [] args){
		HTTPConnection2 c=new HTTPConnection2();
		c.post("http://localhost/up2.php", new File("C:/teste.txt"));
	}
}
O cara que cuida do site me mandou o seguinte código para testar no 'localhost'. Ele deve retornar 0 se o arquivo não foi enviado corretamente:
<?
if(is_uploaded_file($_FILES['arquivo']['tmp_name'])) {
	move_uploaded_file($_FILES['arquivo']['tmp_name'],basename($_FILES['arquivo']['tmp_name']));
} else {
	echo 0;
}

?>

Alguém aí pode me ajudar?

3 Respostas

R

Eu tentaria fazer essa comunicação Java - PHP através de Web Services.

P

Quando eu precisei fazer um upload de arquivo, quem me ajudou foram estas bibliotecas:

http://commons.apache.org/fileupload/

http://commons.apache.org/httpclient/

Ai basta cuidar da parte PHP :wink:

A

Quando eu precisei mandar aquivos via post, com a diferença que a minha aplicação era java &lt-&gt java eu fiz da seguinte forma:

stream = HttpURLConnection.getOutputStream();
stream.write(haha);
stream.flush();
Criado 26 de agosto de 2007
Ultima resposta 27 de ago. de 2007
Respostas 3
Participantes 4