2013-09-03 10 views
10

वेब ब्राउज़र में, मैं स्थानीय फाइल सिस्टम में एक बड़ी फ़ाइल के sha1 चेकसम को सर्वर पर भेजने के बिना गणना करना चाहता हूं।वेब ब्राउज़र में जावास्क्रिप्ट का उपयोग कर फ़ाइल स्ट्रीम पढ़ें

File API स्थानीय डिस्क से फ़ाइलों को पढ़ने के लिए समर्थन करता है लेकिन मुझे लगता है कि यह पूरी फाइल को पढ़ता है और उन सभी को स्मृति में डाल देता है। अगर फ़ाइल सिस्टम मेमोरी से बड़ी है तो यह एक समस्या हो सकती है।

Streams API इस समस्या को हल करने के लिए उपयोगी प्रतीत होता है लेकिन मुझे एपीआई का उपयोग करके फ़ाइल को पढ़ने का तरीका नहीं मिला।

क्या वेब ब्राउज़र में जावास्क्रिप्ट का उपयोग कर स्थानीय डिस्क से फ़ाइल स्ट्रीम पढ़ने का कोई तरीका है?

+0

हम्म। XMLHttpRequest URL.createObjectURL से ब्लॉब यूआरएल खोलने में सक्षम प्रतीत होता है। – npcode

+0

क्या आपको कभी इस समस्या का समाधान मिला है? मैं वही जानना चाहता हूं। – monkeymatrix

+0

@monkeymatrix अभी तक नहीं। मुझे लगता है कि इस समस्या को हल करने के लिए एपीआई को बेहतर किया जाना चाहिए। – npcode

उत्तर

5

फ़ाइल एपीआई एक टुकड़ा तरीका प्रदान करता है, ताकि आप डेटा का हिस्सा पढ़ने के लिए सक्षम होना चाहिए

var blob = file.slice(startingByte, endindByte); 

गूगल के क्रिप्टो एपीआई में SHA1 वर्ग एक अद्यतन विधि, आप अद्यतन विधि को खिलाने के लिए सक्षम होना चाहिए प्रदान करता है अपने हिस्से के साथ

स्रोत:

+0

बहुत बहुत धन्यवाद! यह बहुत अच्छी तरह से काम करता है और मैं यहां एक उदाहरण लिखता हूं: https://gist.github.com/npcode/11282867 – npcode

संबंधित मुद्दे