"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मेरी Java HttpClient फ़ाइल PHP सर्वर पर अपलोड क्यों विफल हो रही है, और मैं MultipartEntity का उपयोग करके इसे कैसे ठीक कर सकता हूँ?

मेरी Java HttpClient फ़ाइल PHP सर्वर पर अपलोड क्यों विफल हो रही है, और मैं MultipartEntity का उपयोग करके इसे कैसे ठीक कर सकता हूँ?

2024-12-23 को प्रकाशित
ब्राउज़ करें:165

Why is my Java HttpClient file upload to a PHP server failing, and how can I fix it using MultipartEntity?

PHP के साथ जावा के HttpClient के माध्यम से एक फ़ाइल अपलोड करना

PHP का उपयोग करके जावा से अपाचे सर्वर पर एक फ़ाइल अपलोड करने के प्रयास में, जकार्ता का लाभ उठाते हुए एक जावा एप्लिकेशन बनाया गया था HttpClient लाइब्रेरी संस्करण 4.0 बीटा2। हालाँकि, PHP स्क्रिप्ट अपलोड की गई फ़ाइल को पहचानने में विफल हो रही थी, जिसके परिणामस्वरूप एक खाली $_FILES सरणी थी।

Java कार्यान्वयन

प्रारंभिक जावा कोड गलत था, जैसा कि नीचे संशोधित संस्करण से स्पष्ट है:

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

मुख्य अंतर मल्टीपार्टएंटिटी के उपयोग में है, जो फ़ाइल अपलोड के उचित प्रबंधन को सक्षम बनाता है।

PHP स्क्रिप्ट

PHP स्क्रिप्ट अपरिवर्तित रहती है:

निष्कर्ष

जावा कोड में मल्टीपार्टएंटिटी को नियोजित करके, अपलोड की गई फ़ाइल का पता लगाने में विफल PHP स्क्रिप्ट का मुद्दा हल हो गया था, और फ़ाइल को सर्वर पर सफलतापूर्वक स्थानांतरित और संसाधित किया जा सकता था .

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3