के माध्यम से बाइनरी डेटा कैसे भेजें I JQuery और पर नया हूं, मैं कुछ फ़ाइलों को सर्वर पर अपलोड करने के लिए JQuery अजाक्स का उपयोग करना चाहता हूं, केवल PUT विधि में। जब मैं अपने सर्वर पर कुछ बाइनरी फ़ाइल (जैसे gif या jpeg) भेजता हूं, सफल अपलोड करता हूं, लेकिन बाइनरी डेटा की सामग्री बदल दी गई थी (यह मूल फ़ाइल आकार से हमेशा बड़ी होती है)। मैं सामग्री-प्रकार या फ़ाइल परिणाम के प्रकार को बदलने का प्रयास करता हूं, लेकिन फिर भी काम नहीं करता हूं। कोई भी जानता है कि इसे कैसे ठीक किया जाए?JQuery Ajax PUT विधि
पीएस: मैं बाइनरी फ़ाइल की सामग्री को अन्य रूप में एन्कोड नहीं कर सकता, क्योंकि मैं सर्वर के कोड को स्पर्श नहीं कर सकता।
var reader = new FileReader();
reader.onloadend = (function(Thefile) {
$.ajax({
url: url,
processData:false,
//contentType:"application/octet-stream; charset=UTF-8",
data: file.result,
type: 'PUT',
success : function(){console.log("OK!");},
error : function(){console.log("Not OK!");}
});
})(file);
reader.readAsBinaryString(file);
मुझे एक समान समस्या का सामना करना पड़ा है। मेरा पहला अनुमान यह है कि अनुरोध को भेजने से पहले 'AJAX' फ़ंक्शन डेटा को संसाधित करने के तरीके से ऐसा करना होगा। –
jQuery AJAX मशीनरी के बावजूद, ध्यान दें कि आपको reader.onloadend पर फ़ंक्शन असाइन करना चाहिए - उस फ़ंक्शन को स्वयं नहीं बुलाएं! – Tom