2012-03-26 22 views
6

मेरी एचटीएमएल 5 वेब अनुप्रयोग एक WebSocket के माध्यम से बाइनरी डेटा के रूप में एक फ़ाइल प्राप्त करता है। प्राप्तकर्ता डेटा को उपयोगकर्ता डिस्क में सहेजने के लिए फ़ाइल डाउनलोड संवाद (जावास्क्रिप्ट के माध्यम से) शुरू करने का कोई तरीका है?WebSocket के माध्यम से फ़ाइल प्राप्त और डाउनलोड संवाद आरंभ

धन्यवाद!

उत्तर

0

अभी नहीं, नहीं। नया File API वर्तमान में केवल पढ़ने को कवर करता है। अद्यतन: Peter's answer देखें अगर आप केवल cutting-edge (and to date, non-IE) browsers है, जहां आप data: URI योजना के साथ यह कर सकते हैं पर यह करने के लिए की जरूरत है।

ऐसा करने का सामान्य तरीका फ़ाइल को वेब सॉकेट के माध्यम से प्राप्त करने के बजाय, फ़ाइल डाउनलोड संवाद को ट्रिगर करने के लिए Content-Disposition: attachment का उपयोग करके एक छिपे हुए आईफ्रेम में HTTP के माध्यम से फ़ाइल प्राप्त करना होगा।

4

आप एक dataUri का निर्माण और इस के साथ एक नई विंडो खोलने की जरूरत है। विशिष्ट mimetypes ब्राउज़र के स्वचालित सहेजने के रूप में संवाद को ट्रिगर कर सकते हैं।

उदाहरण डेटा uri: "data:application/octet-stream,base64" + base64binary

+0

+1 अच्छा सोचा, तो यह और भी लगता है काम करने के लिए: http://jsbin.com/acohaz रहे हैं [कुछ ब्राउज़र संगतता मुद्दों] (http://caniuse.com/# feat = datauri) - कम से कम नहीं कि आईई 9 भी डेटा का उपयोग करने का समर्थन करता है: 'यूआरआई इस तरह से अभी तक - लेकिन यह शहर में एकमात्र गेम है यदि आपको वास्तव में डेटा क्लाइंट-साइड रखने की आवश्यकता है और फिर डाउनलोड विंडो शुरू करें। –

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

  • कोई संबंधित समस्या नहीं^_^