Heim >Java >javaLernprogramm >Wie lade ich mit HttpClient eine Datei von Java auf einen PHP-Server hoch?

Wie lade ich mit HttpClient eine Datei von Java auf einen PHP-Server hoch?

Barbara Streisand
Barbara StreisandOriginal
2024-12-07 20:09:12434Durchsuche

How to Upload a File from Java to a PHP Server Using HttpClient?

So laden Sie eine Datei von Java auf einen PHP-Server mithilfe der HttpClient-Bibliothek hoch

In dieser Anleitung erfahren Sie, wie Sie eine Datei hochladen Datei von einer Java-Anwendung auf einen Apache-Server, auf dem PHP ausgeführt wird, mithilfe der Jakarta HttpClient-Bibliothek Version 4.0 beta2.

Java-Code

Der folgende Java-Code zeigt, wie eine Datei mithilfe der HttpClient-Bibliothek hochgeladen wird:

import java.io.File;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.FileEntity;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.util.EntityUtils;


public class PostFile {
  public static void main(String[] args) throws Exception {
    HttpClient httpclient = new DefaultHttpClient();
    httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

    HttpPost httppost = new HttpPost("http://localhost:9001/upload.php");
    File file = new File("c:/TRASH/zaba_1.jpg");

    MultipartEntity mpEntity = new MultipartEntity();
    ContentBody cbFile = new FileBody(file, "image/jpeg");
    mpEntity.addPart("userfile", cbFile);


    httppost.setEntity(mpEntity);
    System.out.println("executing request " + httppost.getRequestLine());
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity resEntity = response.getEntity();

    System.out.println(response.getStatusLine());
    if (resEntity != null) {
      System.out.println(EntityUtils.toString(resEntity));
    }
    if (resEntity != null) {
      resEntity.consumeContent();
    }

    httpclient.getConnectionManager().shutdown();
  }
}

PHP Code

Der PHP-Code auf der Serverseite ist für die Verarbeitung der hochgeladenen Daten verantwortlich Datei:

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
  echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
  move_uploaded_file ($_FILES['userfile'] ['tmp_name'], $_FILES['userfile'] ['name']);
} else {
  echo "Possible file upload attack: ";
  echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
  print_r($_FILES);
}

Fehlerbehebung

Wenn die Datei nicht erfolgreich hochgeladen werden kann, stellen Sie sicher, dass:

  • Die Datei nicht erfolgreich hochgeladen wird zu groß für den Server.
  • Die HTTP-Anfrage wird mit dem richtigen Inhaltstyp gesendet, z. B „image/jpeg.“
  • Der PHP-Code verarbeitet die hochgeladene Datei korrekt.

Das obige ist der detaillierte Inhalt vonWie lade ich mit HttpClient eine Datei von Java auf einen PHP-Server hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn