के साथ अपलोड करें मुझे अपने सर्वर पर जावास्क्रिप्ट में बनाए गए ब्लॉब को अपलोड करने में समस्या आ रही है। मूल विचार यह है कि एक उपयोगकर्ता एक छवि अपलोड करता है और जावास्क्रिप्ट में मैं छवि को फसल करता हूं और संचरण से पहले इसे घटा देता हूं।जावास्क्रिप्ट ब्लॉब फॉर्मडाटा
छवि कुशलता ठीक काम कर रही है, लेकिन अपलोड स्वयं सही काम नहीं कर रहा है।
: यहाँ कोड है कि कैनवास से अपलोड और रूपांतरण करता बूँद कोfunction uploadCanvasData()
{
var canvas = $('#ImageDisplay').get(0);
var dataUrl = canvas.toDataURL("image/jpeg");
var blob = dataURItoBlob(dataUrl);
var formData = new FormData();
formData.append("file", formData);
var request = new XMLHttpRequest();
request.onload = completeRequest;
request.open("POST", "IdentifyFood");
request.send(formData);
}
function dataURItoBlob(dataURI)
{
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++)
{
ia[i] = byteString.charCodeAt(i);
}
var bb = new Blob([ab], { "type": mimeString });
return bb;
}
सर्वर का दावा है कि कोई भी फ़ाइलें अपलोड किया गया, और जब मैं क्रोम का उपयोग अनुरोध की जांच करने के लिए, मैं के रूप में अनुरोध पेलोड देखना है
------WebKitFormBoundaryyzYbm61DKgS09tpB
Content-Disposition: form-data; name="file"
[object FormData]
------WebKitFormBoundaryyzYbm61DKgS09tpB--
एक रूप के पेलोड के विपरीत input type="file"
------WebKitFormBoundaryUOn3WXb7pKLmOxRZ
Content-Disposition: form-data; name="imagefile"; filename="-3YQHiVaGWo.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryUOn3WXb7pKLmOxRZ--
के साथ प्रस्तुत किया जा रहा तो यह मेरे लिए लगता है कि XMLHttpRequest सिर्फ कैलोरी के परिणाम अपलोड कर रहा है लिंग blob.toString()
क्या कोई जानता है कि मैं यहां क्या गलत कर रहा हूं? क्या कोई बेहतर दृष्टिकोण है जिसका उपयोग करना चाहिए?
हे मैन manurItoBlob फ़ंक्शन के लिए धन्यवाद। छवि अपलोड केवल नए ब्लॉब ([window.atob (png)], {type: 'image/png'} के साथ ठीक से काम नहीं कर रहा था); –