2012-08-14 3 views
5

साथ एकाधिक फ़ाइलों को अपलोड करने के लिए मुझे लगता है मैं AsyncHttpClientकैसे AsyncHttpClient एंड्रॉयड

से एकल फाइल अपलोड कर सकते हैं

http://loopj.com/android-async-http/

File myFile = new File("/path/to/file.png"); 
RequestParams params = new RequestParams(); 
try { 
    params.put("profile_picture", myFile); 
} catch(FileNotFoundException e) {} 

पता लेकिन मैं बहुखण्डीय पोस्ट के साथ सर्वर से एकाधिक फ़ाइलों को अपलोड करने के लिए है। मैं यह कैसे कर सकता हूं?

उत्तर

1

SimpleMultipartEntity ऑब्जेक्ट बनाएं और प्रत्येक फ़ाइल के लिए ऐडपार्ट को कॉल करें जिसे आप अपलोड करना चाहते हैं।

+0

यह काम नहीं किया है .. यह सिर्फ पहले एक के बाद दूसरे स्थान फ़ाइल विलय कर दिया .. –

+1

मैं एक ही कुंजी के लिए दो फ़ाइलों जोड़ना चाहते हैं .. हो सकता है यही वजह है कि इस विधि उन्हें मर्ज है –

+0

है आप इसे ठीक करने में सक्षम हैं? कृपया –

-1

आप इस कोड का उपयोग करना चाहिए:

public static void fileUpLoad(String url,File file,AsyncHttpResponseHandler asyncHttpResponseHandler){ 
    RequestParams requestParams=new RequestParams(); 

    try{ 
     requestParams.put("profile_picture", file,"application/octet-stream"); 
     client.post(url, requestParams, new AsyncHttpResponseHandler()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

अनुरोध बहु-भाग अपलोडिंग है। –

3

आप फ़ाइलों कुंजी के लिए मूल्य के रूप में एक फ़ाइल सरणी पारित कर सकते हैं। ऐसा करने में, नीचे दिए गए कोड का पालन करें:

File[] myFiles = { new File("pic.jpg"), new File("pic1.jpg") }; 
RequestParams params = new RequestParams(); 
try { 
    params.put("profile_picture[]", myFiles); 
} catch(FileNotFoundException e) { 

} 

Aditionally, यदि आप एक गतिशील सरणी चाहते हैं, आप एक ArrayList का उपयोग करें और परिवर्तित कर सकते हैं विधि .toArray()

साथ [] प्रकार फ़ाइल
ArrayList<File> fileArrayList = new ArrayList<>(); 

//...add File objects to fileArrayList 

File[] files = new File[fileArrayList.size()]; 
fileArrayList.toArray(files); 

इस सहायता की आशा करें। = डी

+0

मुझे यहां कोई समस्या है: मैं बिल्कुल ऊपर की तरह करता हूं, लेकिन फिर पर कॉलबैक कॉल नहीं किया जाता है। जब मैं सात फाइलें अपलोड करता हूं [छवियों] या तो, मुझे पूरी तरह से केवल एक छवि मिलती है और उनमें से बाकी खाली होती हैं। यह हालांकि 4 फाइलों के साथ काम करता है, लेकिन सफलता के लिए कॉल वापस कभी प्राप्त नहीं होता है। –

0

आपको अपनी सभी फाइलों को पैराम्स पर पैरामीटर के रूप में पास करना चाहिए। उदाहरण के लिए:

params.put("file_one", myFiles1); 
params.put("file_two", myFiles2) 
0

फ़ाइल [] फ़ाइलें = lst.toArray (नई फ़ाइल [lst.size()]);

try { 
     params.put("media[]", files); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    }