"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > किसी सर्वर पर फ़ाइल कैसे भेजें और जावास्क्रिप्ट का उपयोग करके इसकी अपलोड प्रगति की निगरानी कैसे करें?

किसी सर्वर पर फ़ाइल कैसे भेजें और जावास्क्रिप्ट का उपयोग करके इसकी अपलोड प्रगति की निगरानी कैसे करें?

2024-11-12 को प्रकाशित
ब्राउज़ करें:939

How to send a file to a server and monitor its upload progress using JavaScript?

जावास्क्रिप्ट में फ़ाइलें भेजना

मान लीजिए कि आपके पास एक 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});

Async-Try-Catch वाला उदाहरण

इस उदाहरण में 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