2012-03-26 15 views
6

benim HTML5 web uygulaması WebSocket'e aracılığıyla ikili veri olarak bir dosya aldığında indirme penceresi başlatın. Alınan verileri kullanıcı diskine kaydetmek için bir dosya indirme iletişimini (javascript aracılığıyla) başlatmanın herhangi bir yolu var mı?WebSocket'e yoluyla dosya almak ve

Teşekkür ederiz!

cevap

0

Henüz yok, no. Yeni File API şu anda sadece okumayı kapsamaktadır. Güncelleme: yalnızca data: URI planıyla yapabilir cutting-edge (and to date, non-IE) browsers, bunu yapmak gerekiyorsa Peter's answer bakın.

Bunu yapmanın genel yolu, dosyayı bir web soketi aracılığıyla almak yerine dosya indirme iletişimini tetiklemek için Content-Disposition: attachment kullanarak HTTP aracılığıyla gizli bir iframe içine almak olacaktır.

4

Bir dataUri inşa etmek ve bununla yeni bir pencere açmak gerekir. Belirli mimetekler, tarayıcının otomatik kaydetme iletişimini tetikleyebilir.

Örnek veri uri:

+0

1 İyi düşünce, hatta görünüyor "data:application/octet-stream,base64" + base64binary çalışmak: http://jsbin.com/acohaz [bazı tarayıcı uyumluluk sorunları] vardır (http://caniuse.com/# feat = datauri) - IE9 bile 'data:' URI'leri bu şekilde kullanmamayı desteklemiyor - fakat veriyi istemci tarafında tutmanız gerekiyorsa ve indirme penceresini başlatmanız gerekiyorsa, bu sadece şehirdeki tek oyun. –