Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Fail Java HttpClient Saya Dimuat Naik ke PHP Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Fail Java HttpClient Saya Dimuat Naik ke PHP Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Lepaskan: 2024-12-12 16:22:16
asal
965 orang telah melayarinya

Why Does My Java HttpClient File Upload to PHP Fail, and How Can I Fix It?

Cara Berjaya Memuat Naik Fail Menggunakan Java HttpClient Library dan PHP

Apabila cuba memuat naik fail daripada aplikasi Java ke pelayan Apache menjalankan PHP menggunakan perpustakaan Jakarta HttpClient, anda mungkin menghadapi isu berikut:

Masalah Pernyataan:

Aplikasi Java menggunakan perpustakaan Jakarta HttpClient untuk memuat naik fail ke pelayan Apache dengan PHP gagal mendaftarkan fail dalam PHP. Kaedah is_uploaded_file mengembalikan palsu dan pembolehubah $_FILES kekal kosong.

Penyelesaian:

Kod Java yang disediakan mengandungi ralat yang menghalang muat naik fail berjaya. Kelas Java yang diperbetulkan berikut menangani isu ini:

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

Penjelasan:

Perbezaan utama antara kod Java yang sebelumnya dan yang diperbetulkan terletak pada penggunaan MultipartEntity. Skrip PHP menjangkakan data dalam format berbilang bahagian/data bentuk, yang tidak dipatuhi oleh kod sebelumnya. Dengan menggunakan MultipartEntity, data diformat dengan betul dan proses muat naik fail boleh diselesaikan dengan jayanya.

Atas ialah kandungan terperinci Mengapa Fail Java HttpClient Saya Dimuat Naik ke PHP Gagal, dan Bagaimana Saya Boleh Membetulkannya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan