Wer automatisiert Dateien zu seinen Server senden möchte, hat es unter Windows nicht ganz einfach. Für das Versenden einer Datei über Port 80 hat Windows leider nichts an Bord. Ein kleines Java Programm was über DOS einfach angesprochen werden kann ist aber schnell umgesetzt. Hier ein Beispiel für ein POST einer test.jpg zu einen entfernten Server:
/** public class UploadExample // Construct data public static void main (String args[]) { // Send header // File To Upload fis.readFully(theData); String command = String trail = "\r\n--dill--\r\n"; String header = wr.write(header); wr.flush(); BufferedReader rd = new BufferedReader(new }
* @author Günter Dillenberg
* Upload multipart/form-data via HTTP POST
*/
import java.io.*;
import java.net.*;
{
try{
String hostname = "upload.meinserver.com";
int port = 80;
InetAddress addr = InetAddress.getByName(hostname);
Socket socket = new Socket(addr, port);
String path = "/do_upload.cfm";
File theFile = new File("C:/test.jpg");
System.out.println ("size: " + (int) theFile.length());
DataInputStream fis = new DataInputStream(new BufferedInputStream(new
FileInputStream(theFile)));
byte[] theData = new byte[(int) theFile.length( )];
fis.close();
DataOutputStream raw = new
DataOutputStream(socket.getOutputStream());
Writer wr = new OutputStreamWriter(raw);
"--dill\r\n"
+ "Content-Disposition: form-data; name=\"FiletoUpload\"; filename=\""
+ theFile.getName() + "\"\r\n"
+ "Content-Type: image/pjpeg\r\n"
+ "\r\n";
"POST "+path+" HTTP/1.0\r\n"
+ "Accept: */*\r\n"
+ "Referer: http://localhost\r\n"
+ "Accept-Language: de\r\n"
+ "Content-Type: multipart/form-data; boundary=dill\r\n"
+ "User_Agent: TESTAGENT\r\n"
+ "Host: upload.meinserver.com\r\n"
+ "Content-Length: " + ((int) theFile.length() + command.length() + trail.length()) + "\r\n"
+ "Connection: Keep-Alive\r\n"
+ "Pragma: no-cache\r\n"
+ "\r\n";
wr.write(command);
raw.write(theData);
raw.flush( );
wr.write("\r\n--dill--\r\n");
wr.flush( );
InputStreamReader(socket.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
raw.close();
socket.close();
} catch (Exception e) { System.out.println(e.toString()); }
}
Für diesen Eintrag haben Sie keine Benachrichtigungsfunktion aktiviert oder Sie sind nicht angemeldet. Zum Login/ Registrierung .
vielen Dank für ihr Beispiel. Sie haben mir damit sehr weitergeholfen. Leider sind im Netz Beispielcode für
Datei-Uploads nur sehr spärlich gesät. Aber eine Bitte habe ich da noch. Konnten Sie mir ein Beispiel zukommen
lassen, weitere Inputparameter mit dem Upload mitzusenden?
Vielen Dank schon mal im Voraus,
Sukoor
String command =
"--dill\r\n"
+ "Content-Disposition: form-data; name=\"FiletoUpload\"; filename=\""
+ theFile.getName() + "\"\r\n"
+ "Content-Type: image/pjpeg\r\n"
+ "\r\n";
// weitere Formdaten hier ein Inputfeld mit dem Wert "inputfeld1 inhalt"
"--dill\r\n"
+ "Content-Disposition: form-data; name=\"inputfeld1\";
+ "inputfeld1 inhalt";
+ "\r\n";
// weitere Formdaten hier ein Inputfeld mit dem Wert "inputfeld2 inhalt2"
"--dill\r\n"
+ "Content-Disposition: form-data; name=\"inputfeld1\";
+ "inputfeld2 inhalt2";
+ "\r\n";
Hoffe geholfen zu haben.
Kommentare wurden deaktiviert in diesem Posting.
