में जावास्क्रिप्ट फ़ाइल एपीआई को कैसे सक्षम करें मैंने एएसपीनेट में एक वेब एप्लीकेशन विकसित किया है, इस परियोजना में एक पृष्ठ है जिसे उपयोगकर्ता को चित्र प्रारूप (जेपीईजी, जेपीजी, बीएमपी, ...) में एक फ़ाइल चुननी चाहिए और मैं पृष्ठ में छवि का पूर्वावलोकन करना चाहता हूं लेकिन मैं सर्वर पर फ़ाइल पोस्ट नहीं करना चाहता हूं, मैं इसे क्लाइंट में संभालना चाहता हूं, मैंने इसे जावा एपीआई के माध्यम से जावा स्क्रिप्ट फ़ंक्शंस के साथ किया है, लेकिन यह केवल आईई 9 में काम करता है लेकिन अधिकांश costumers IE8 का उपयोग करते हैं कारण यह है कि IE8 फ़ाइल एपीआई का समर्थन नहीं करता है, आईई 8 अपग्रेड या कोड में कुछ पैच बनाने का कोई तरीका है, मेरा मतलब यह है कि ब्राउजर आईई है या नहीं, फ़ाइल एपीआई का समर्थन नहीं करता है, जो एक आईई 8 को आईई 9 में स्वचालित रूप से अपग्रेड करता है।
आईई 8
मैं उपयोगकर्ता से यह संदेश में नहीं करना चाहता हूं कि मैं इसे प्रोग्रामेटिक रूप से करना चाहता हूं !!
फ़ाइल एपीआई के लिए आवश्यक एक विशेष पैच स्थापित करना संभव है, क्योंकि ग्राहकों ने सोचा कि यह मेरे आवेदन में एक बग है और उनके कंप्यूटर ज्ञान कम मुझे इसके साथ क्या करना चाहिए?
मैं एसिंक फ़ाइल अपलोड अजाक्स कंट्रोल का भी उपयोग करता हूं लेकिन यह फ़ाइल को AJAX समाधान और HTTP हैंडलर के साथ किसी भी तरह से सर्वर पर पोस्ट करता है लेकिन जावा स्क्रिप्ट क्लाइंट ब्राउज़र में यह सब करता है !!!
निम्न स्क्रिप्ट की जाँच करता है ब्राउज़र एपीआई का समर्थन करता है या का पालन नहीं कर
<script>
if (window.File && window.FileReader && window.FileList && window.Blob)
document.write("<b>File API supported.</b>");
else
document.write('<i>File API not supported by this browser.</i>');
</script>
स्क्रिप्ट पढ़ने और लोड छवि कर
function readfile(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = readerHandler;
fr.readAsText(filename);
}
एचटीएमएल कोड:
<input type="file" id="getimage">
<fieldset><legend>Your image here</legend>
<div id="imgstore"></div>
</fieldset>
जावा स्क्रिप्ट कोड:
<script>
function imageHandler(e2)
{
var store = document.getElementById('imgstore');
store.innerHTML='<img src="' + e2.target.result +'">';
}
function loadimage(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = imageHandler;
fr.readAsDataURL(filename);
}
window.onload=function()
{
var x = document.getElementById("filebrowsed");
x.addEventListener('change', readfile, false);
var y = document.getElementById("getimage");
y.addEventListener('change', loadimage, false);
}
</script>
धन्यवाद एक बहुत tpeczek मैं इसे बाहर की जाँच करेगा, polyfill समारोह इतना चलाने के लिए फ़्लैश की जरूरत है मैं उपयोगकर्ता डाउनलोड करने और फ़्लैश स्थापित करने के लिए आप से पूछना चाहिए और मुझे क्या करना उपयोगकर्ता पूछने के लिए नहीं करना चाहते किसी भी चीज क्योंकि उपयोगकर्ता IE9 को सॉफ़्टवेयर में किसी भी तरह से स्थापित कर सकते हैं जब डेवलपर्स एक बग देखते हैं, वे एक पैच या प्लग-इन जारी करते हैं जो आपको बग को सुधारता है, जिसे आप जानते हैं कि मैं एक्सप्लोरर निर्देशिका में एक डीएलएल फ़ाइल कॉपी करना चाहता हूं और किसी भी प्रकार के माध्यम से एक्सप्लोरर में कुछ बदलाव करना चाहता हूं स्क्रिप्ट्स का मुझे लगता है कि एक तरीका है कि मैं एक फाइल अपलोड कर सकता हूं और जांच सकता हूं कि ब्राउज़र एपीआई फ़ंक्शन डाउनलोड डीएलएल फ़ाइल का समर्थन नहीं करता है और कुछ ऑपरेशन करता है जैसे कि system32 – saeed
पर कॉपी करें मेरी बड़ी समस्या यह है कि IE8 फ़ाइल API का समर्थन नहीं करता है किसी भी तरह से बैच फ़ाइल कुछ चीज करने के लिए – saeed
@ सईड आईई में समर्थित फ़ाइल एपीआई प्राप्त करने का एकमात्र तरीका IE9 + होना है। आप किसी भी डीएलएल को भी नहीं बदल सकते हैं या वेब एप्लिकेशन स्तर से किसी भी सॉफ्टवेयर को इंस्टॉल नहीं कर सकते हैं - ऐसी संभावना एक बड़ी सुरक्षा उल्लंघन होगी (याद रखें कि आप एक सैंडबॉक्स में हैं)। – tpeczek