# Java HTTP Request



## labro (18. Dez 2007)

Habe folgendes Problem, ich sende per http POST ein Bild an ein php Skript, alles wird ordentlich ausgeführt nur wenn ich im Skript das $_FILES array mit print_r ausgebe ist es leer. Ich hoffe jemand kann mir weiterhelfen
Hier mein Code:


```
try{
		        this.connect = new URL("http://127.0.0.1/JU/wwwroot/upload_dummy.php");
				HttpURLConnection connection=(HttpURLConnection)connect.openConnection();
				System.out.println("Connection Opened");


				connection.setDoInput(true);
				connection.setDoOutput(true);
				
				connection.setRequestMethod("POST");
				connection.setRequestProperty("Host", "http://127.0.0.1/JU/wwwroot/upload_dummy.php");
				connection.setRequestProperty("Content-Type","multipart/form-data");
				connection.setRequestProperty("Content-Length",Integer.toString((int)this.testFile.length()));
				connection.setRequestProperty("Refferer","http://127.0.0.1/JU/wwwroot/index.php");

				this.fileOut = new DataOutputStream(connection.getOutputStream());
				byte[] fileIn = new byte[(int)this.testFile.length()];

				FileInputStream tmp = new FileInputStream(this.testFile);
				tmp.read(fileIn);

				this.fileOut.write(fileIn);
				this.fileOut.flush();
				BufferedReader input = new BufferedReader(new InputStreamReader(connection.getInputStream()));
				String out="";
				while(out!=null) {
					System.out.println("test");
                    out = input.readLine();
					System.out.println(out);
				}
	           input.close();
	           tmp.close();
	           connection.disconnect();

				}catch(IOException ie){}
```


----------



## The_S (18. Dez 2007)

Du liest aber nicht wirklich eine binär-Datei (Bild) mit einem BufferedReader aus!?


----------



## pingping (18. Dez 2007)

Hallo

Der BufferedReader soll wohl eher das HTML Dokument auslesen.
Bei den anderen IO Geschichten sehe ich keinen Fehler aber das muss nichts heißen  :? 
Kann das Problem vielleicht am MIME Type liegen?


----------



## labro (18. Dez 2007)

also, scheinbar braucht php eine art marker wann eine Datei anfängt und wann sie aufhört.
habe folgendes geändert und es tut sich bereits etwas:


```
connection.setRequestProperty("Content-Type","multipart/form-data;boundary=******");

				connection.setRequestProperty("Content-Length",Integer.toString((int)this.testFile.length()));
				connection.setRequestProperty("Refferer","http://127.0.0.1/JU/wwwroot/index.php");
				this.fileOut = new DataOutputStream(connection.getOutputStream());
				this.fileOut.writeBytes("--" + "******" + "\r\n");
				this.fileOut.writeBytes("Content-Disposition: form-data; name=\"bild\";"
	              + " filename=\"" + this.testFile.getName() +"\"" + "\r\n");
				this.fileOut.writeBytes("\r\n");
				
				byte[] fileIn = new byte[(int)this.testFile.length()];

				FileInputStream tmp = new FileInputStream(this.testFile);
				int i = tmp.read(fileIn,0,(int)this.testFile.length());
				

				
				this.fileOut.write(fileIn,0,i);
				this.fileOut.writeBytes("\r\n");
				this.fileOut.writeBytes("--"+"******"+"--"+"\r\n");
```


----------

