Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memuat Naik Fail Dengan Betul Menggunakan Perpustakaan HttpClient Java ke Pelayan PHP?

Bagaimana untuk Memuat Naik Fail Dengan Betul Menggunakan Perpustakaan HttpClient Java ke Pelayan PHP?

DDD
Lepaskan: 2024-12-11 17:37:11
asal
595 orang telah melayarinya

How to Correctly Upload Files Using Java's HttpClient Library to a PHP Server?

Cara Memuat Naik Fail Menggunakan Java HttpClient Library dengan PHP

Masalah:

A Aplikasi Java menggunakan perpustakaan HttpClient versi 4.0 beta2 cuba memuat naik fail ke pelayan Apache yang menjalankan PHP, tetapi fail itu tidak dikenali oleh skrip PHP.

Penyelesaian:

Kod Java asal menggunakan objek FileEntity untuk memindahkan fail, yang tidak betul. Pendekatan yang betul ialah menggunakan MultipartEntity untuk merangkum fail sebagai permintaan data berbilang bahagian/bentuk.

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.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();
  }
}
Salin selepas log masuk

Dengan memasukkan perubahan ini, fungsi muat naik fail harus berfungsi seperti yang dimaksudkan dan fail akan berjaya diiktiraf oleh skrip PHP.

Atas ialah kandungan terperinci Bagaimana untuk Memuat Naik Fail Dengan Betul Menggunakan Perpustakaan HttpClient Java ke Pelayan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan