2012-08-02 7 views
8

मैं एक सर्वर पर एक तस्वीर अपलोड करने पर काम कर रहा हूं। मैं आईओएस का उपयोग करके एक छवि सफलतापूर्वक अपलोड करने में सक्षम हूं लेकिन जब मैं एंड्रॉइड पर कोशिश करता हूं तो मुझे त्रुटि कोड मिलता है 3. वर्तमान में फोनगैप कॉर्डोवा 1.8.1 का उपयोग कर रहा है।फ़ोनगैप का FileTransfer.upload() एंड्रॉइड पर त्रुटि कोड 3 फेंकना

मैं पहले से ही मानकों

upload(filePath, server, successCallback, errorCallback, options, **true**); 

को सच जोड़ने और इस

options.chunkedMode = false; 

मेरे AndroidManifest फ़ाइल जोड़ने की कोशिश की शामिल हैं:

<uses-permission android:name="android.permission.INTERNET" /> 

मेरे cordova.xml फ़ाइल है:

<access origin="*"/> 

क्या मुझे कुछ याद आ रही है?

धन्यवाद

+1

मेरे पास आईओएस पर एक ही त्रुटि कोड है, आपने अपनी समस्या का समाधान कैसे किया? – ADOConnection

+1

त्रुटि कोड अर्थ: 1 = FileTransferError.FILE_NOT_FOUND_ERR \t \t \t \t \t \t \t \t 2 = FileTransferError.INVALID_URL_ERR \t \t \t \t \t \t \t \t 3 = FileTransferError.CONNECTION_ERR \t \t \t \t \t \t \t \t 4 = FileTransferError .ABORT_ERR \t \t \t \t \t \t \t \t 5 = FileTransferError.NOT_MODIFIED_ERR –

उत्तर

-1

आप इनमें से किसी की कोशिश कर सकते हैं: अपने AndroidManifest.xml फ़ाइल के <application> टैग में

सेट android:debuggable="true"

सेट <access origin=".*"/> सिर्फ * के बजाय के रूप में यह टिप्पणी अनुभाग में सुझाव दिया गया है इस प्रकार है:

<!-- <access origin="https://example.com" /> allow any secure requests to example.com --> 
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www --> 
<!-- <access origin=".*"/> Allow all domains, suggested development use only --> 
+0

। * Phonegap निर्माण के साथ काम नहीं कर रहा – ADOConnection

2

यह भी मुझे क्या हुआ। के बाद से वहाँ थे कोई आप chunkedMode=false (http://stackoverflow.com/questions/8522729/phonegap-filetransfer-upload-fails-on-android)

var options = FileUploadOptions(); 
options.chunkedMode = false; 
+0

क्षमा करें, chunked मोड को अक्षम मदद नहीं की। – ottel142

0

निर्दिष्ट करना चाहिए यह phonegap पुस्तकालय में एक unfixed बग है,

ft.upload(path, 
      encodeURI("http://yourdomain.com/upload.php"), 
      function(result) { 
       alert("Uploaded"); 
      }, 
      function(error) { 
       ft.upload(path, 
       encodeURI("http://yourdomain.com/upload.php"), 
       function(result) { 
        alert("Uploaded");     
       }, 
       function(error) { 
        alert("Error uploading image"); 
       }, 
       { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);  
      }, 
      { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true); 
+0

मेरी समस्या का समाधान नहीं हुआ, अब एक सप्ताह के लिए इस के साथ संघर्ष कर रहा है। कोई अन्य सुझाव? –

4

ऐड कोड: बग फिक्स, मैं इसे चारों ओर अपने काम से काम (मूल रूप से हर दूसरे विफलता पर पुन: अपलोड) पाने के लिए था

var op; 
op = new FileUploadOptions(); 

op.headers = { 
    Connection: "close" 
}; 

इस जोड़ने के बाद - कोड अच्छी तरह से काम करना शुरू कर दिया कोई त्रुटि के साथ। थोड़ा और विस्तृत विवरण: http://grandiz.com/phonegap-development/phonegap-file-transfer-error-code-3-solved आशा है कि मदद करता है!

+0

धन्यवाद, यह मेरे लिए काम करता है! – oletob

0

मैंने टेलरिक से इस मुद्दे के बारे में पूछा है कि मैं ऐपबिल्डर के साथ अनुभव करता हूं। उनकी प्रतिक्रिया के अनुसार it might be a bug in Cordova (मैं 3.2 का उपयोग कर रहा हूं)।

वे एल atest FileTransfer library (सभी निर्भरताओं को भी अपडेट करें) को अपडेट करने की सलाह देते हैं और देखें कि क्या यह आपकी समस्या हल करता है। मैं वास्तव में नई पुस्तकालयों को संकलित करने में एक और समस्या में भाग गया।

मैं यह कोशिश करने की सलाह देता हूं और देखता हूं कि यह आपके लिए काम करता है या नहीं।

जोड़ा निम्नलिखित विकल्पों:

options.chunkedMode = false; 
options.headers = { 
     Connection: "close" 
    }; 

लेकिन अधिक महत्वपूर्ण तथ्य यह है कि मैं परीक्षण के लिए एमुलेटर के रूप में उपयोग कर रहा था Genymotion था

2

ये कदम मैं इस समस्या को दूर करने के लिए इस्तेमाल कर रहे हैं। स्थानीयहोस्ट में छवि अपलोड करना काम नहीं कर रहा था क्योंकि एमुलेटर वीएम में चल रहा था और लोकहोस्ट का मतलब वीएम का लोकलहोस्ट था, न कि आपके वेब सर्वर का लोकहोस्ट।

बजाय पर अपलोड करने का 'स्थानीय होस्ट', आप के लिए अपलोड करना चाहिए:

http://10.0.2.2 

और अपने config.xml में निम्न पंक्ति जोड़ें:

<access origin="10.0.2.2" subdomains="true"/> 

मैं परीक्षण किया यह और इस तरह अपनी कार्यशील जादू। हालांकि यह काम करने के लिए मुझे 3 दिन लगे।

+1

'कनेक्शन:" बंद करें "हेडर मेरे लिए काम करता है। धन्यवाद! –

0

यह भी एक कारण हो सकता है, और मेरे लिए यह हल:

आईओएस 9 और OSX 10.11 सभी मेजबानों आप से जब तक आप अपने ऐप के जानकारी में अपवाद डोमेन निर्दिष्ट डेटा का अनुरोध करने की योजना के लिए TLSv1.2 एसएसएल आवश्यकता होती है। प्लेस्ट फ़ाइल।

(CFNetwork SSLHandshake failed iOS 9)

6

मुद्दा शायद नहीं Phonegap में है। यदि सर्वर एक विंडोज आधारित सर्वर है, तो किसी अन्य सर्वर का उपयोग करने का प्रयास करें। साथ ही, इन पंक्तियों को जोड़ने में मत भूलना:

var options = new FileUploadOptions(); 
options.chunkedMode = false; 
options.headers = { 
     Connection: "close" 
    }; 
+0

यह मेरे लिए एक विंडो सर्वर मशीन पर एक PHP webservice के साथ काम किया। बहुत बहुत धन्यवाद – wezzy

+0

कई चीजों की कोशिश करने के बाद, कई घंटों में, यह मेरे लिए विंडोज मशीन पर रुबी वेबसर्वर (रोडा) के लिए काम करता था। धन्यवाद! – globetrotter

+0

मुझे 'chunkedMode' की आवश्यकता थी, लेकिन' कनेक्शन: "बंद करें" हेडर मेरे लिए काम करता था। धन्यवाद! –

संबंधित मुद्दे