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(); } }
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!