मान लीजिए कि आपके पास एक HTML तत्व है जो एक बटन का प्रतिनिधित्व करता है जो उपयोगकर्ताओं को एक फ़ाइल का चयन करने देता है। बटन पर क्लिक करने और फ़ाइल चुनने पर, उसका नाम document.getElementById('image-file').value में संग्रहीत हो जाता है। यदि सर्वर यूआरएल "/अपलोड/इमेज" पर बहु-भागीय POST अनुरोधों का समर्थन करता है, तो आप फ़ाइल को उस एंडपॉइंट पर कैसे भेजेंगे? इसके अतिरिक्त, आप अपलोड की प्रगति की निगरानी कैसे करते हैं?
आप वैकल्पिक प्रतीक्षा-कोशिश-कैच हैंडलिंग के साथ फ़ेच एपीआई का उपयोग कर सकते हैं:
let photo = document.getElementById("image-file").files[0]; let formData = new FormData(); formData.append("photo", photo); fetch('/upload/image', {method: "POST", body: formData});
इस उदाहरण में JSON के रूप में भेजा गया उपयोगकर्ता डेटा भी शामिल है :
async function SavePhoto(inp) { let user = { name: 'john', age: 34 }; let formData = new FormData(); let photo = inp.files[0]; formData.append("photo", photo); formData.append("user", JSON.stringify(user)); const ctrl = new AbortController(); // for timeout setTimeout(() => ctrl.abort(), 5000); try { let r = await fetch('/upload/image', { method: "POST", body: formData, signal: ctrl.signal, }); console.log('HTTP response code:', r.status); } catch (e) { console.log('Huston we have problem...:', e); } }let xhr = new XMLHttpRequest(); xhr.upload.addEventListener('प्रगति', फ़ंक्शन(ई) { यदि (e.lengthComputable) { मान लीजिए प्रतिशत पूर्ण = (ई.लोड / ई.कुल) * 100; कंसोल.लॉग ('अपलोड प्रगति:', प्रतिशत पूर्ण '%'); } }); xhr.open('POST', '/upload/image'); xhr.send(formData);
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3