5 Stimmen

Senden einer Datei an ein Postformular mit Java

Ich habe schon früher Java verwendet, um Informationen in ein Formular zu schreiben, aber ich habe es noch nie mit einer Datei gemacht. Ich teste diesen Prozess mit einer Bild- und Textdatei, aber anscheinend muss ich die Art und Weise, wie ich es tue, ändern. Die derzeitige Methode (siehe unten) funktioniert nicht, und ich bin mir nicht ganz sicher, ob ich noch HttpClient verwenden kann.

Der params-Teil akzeptiert nur den Typ string. Ich habe ein Formular, mit dem ich Dateien auf einen Server hochlade. Die Website, die ich für unser CMS verwende, erlaubt keine direkte Verbindung, sodass ich Dateien automatisch mit einem Formular hochladen muss.

public static void main(String[] args) throws IOException {
    File testText = new File("C://xxx/test.txt");
    File testPicture = new File("C://xxx/test.jpg");

    HttpClient httpClient = new HttpClient();
    PostMethod postMethod = new PostMethod("xxxx");
    postMethod.addParameter("test", testText);

    try {
        httpClient.executeMethod(postMethod);
    } catch (HttpException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

4voto

Reddy Punkte 8457

Verwenden Sie setRequestEntity Methode, um die Datei direkt zu senden.

FileRequestEntity fre = new FileRequestEntity(new File("C://xxx/test.txt"), "text/plain");
post.setRequestEntity(fre);
postMethod.setRequestEntity(fre);

Zum Senden als Formulardaten verwenden Sie MultipartRequestEntity

File f = new File("C://xxx/test.txt");
Part[] parts = {
    new FilePart("test", f)
};
postMethod.setRequestEntity(
    new MultipartRequestEntity(parts, postMethod.getParams())
    );

Ref: https://stackoverflow.com/a/2092508/324900

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X