संलग्न नहीं करता है मैं AJAX अनुरोध के माध्यम से कुछ फ़ाइल अपलोड सुविधा लागू कर रहा हूं। मैं एक AJAX कॉल में एकाधिक फाइलें भेजने में सक्षम होना चाहता हूं, इसलिए मैंने फॉर्मडाटा का उपयोग करने का निर्णय लिया।क्रोम वेबकिटब्लोबबिल्डर डेटा
मैंने अपनी बाइनरी डेटा स्ट्रिंग को सीधे फॉर्मडाटा (और यह काम करता है) में जोड़ने की कोशिश की, लेकिन सामग्री-विस्थापन में फ़ाइल नाम विशेषता नहीं है: सामग्री-विस्थापन: फ़ॉर्म-डेटा; नाम = "file1"
W3C का कहना है कि मैं formdata करने के लिए एक ब्लॉब वस्तु संलग्न करने के लिए है कि विशेषता है करने के लिए (या FormData.append() 3 विशेषता के साथ इसे स्थापित करने के लिए सक्षम होने के लिए)
मैं की जरूरत है
function uploadAsBinary() {
var xhr = new XMLHttpRequest();
var fd = new FormData();
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
var bb = new window.BlobBuilder();
bb.append("this is my binary content");
var blob = bb.getBlob("text/plain");
fd.append("file1", blob, "file1");
xhr.open("POST", "/mb/0/", false);
xhr.send(fd);
}
यह फ़ायरफ़ॉक्स के साथ पूरी तरह ठीक काम करता है, लेकिन गूगल क्रोम (v16 और v17) के साथ, अनुरोध पेलोड उस में सामग्री के बिना एक formdata है:
------WebKitFormBoundaryVkgESMAGtmPMlPZ7
Content-Disposition: form-data; name="file1"; filename="file1"
Content-Type: text/plain
------WebKitFormBoundaryVkgESMAGtmPMlPZ7--
निम्नलिखित कोड लिखा था मैंने एक ही परिणाम के रूप में एक ऐरेबफर के माध्यम से ब्लॉब भरने की कोशिश की है। मैं अब 2 दिनों के लिए वेब सर्फ कर रहा हूं, मुझे कोई जवाब नहीं मिला है। मुझे एंड्रॉइड पर एक खुली समस्या मिली है (http://code.google.com/p/android/issues/detail?id=22441) लेकिन यह काफी मृत लगता है।
क्या यह वास्तविक क्रोम मुद्दा है? क्या किसी के बारे में कोई सुराग है, या क्या मुझे क्रोमियम ट्रैकर पर कोई समस्या खुलनी चाहिए?
आपकी मदद के लिए Thx!
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||
window.MozBlobBuilder || window.MSBlobBuilder;
window.URL = window.URL || window.webkitURL;
var bb = new BlobBuilder();
bb.append('body { color: red; }');
var blob = bb.getBlob('text/css');
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
ब्लॉब():
एफवाईआई: मैंने क्रोमियम में कोई समस्या खोली है: https://code.google.com/p/chromium/issues/detail?id=119254 – Sebastien
ऐसा लगता है कि यह अभी भी एक मुद्दा है, क्या कोई कामकाज है? – zfedoran