2013-04-27 15 views
5

Bazı dosyam var ve onları getirdikten sonra bunları JSZip kullanarak zip dosyasına dönüştürüyorum, ancak JSZip IE'de çalışmadığından Internet Explorer ve Safari'de çalışmıyor Bazı içeriklerin URL'leri ile.IE ve Safari'de çalışmayan Javascript (JSZip) ile Zip dosyası oluşturma

var zip = new JSZip(); 
var linkArr=$(xml1).find('groupnode:eq('+id_no+')').find('link'); 
var linklength = $(linkArr).length; 

for(i=0;i<linklength;i++) 
{ 
    zip.file("../resources"+$(linkArr[i]).attr('src'),$(linkArr[i]).text()); 
} 

content = zip.generate(); 
location.href="data:application/zip;base64," + content; 

Çapraz tarayıcı desteği sunan başka çözümler biliyor musunuz? IE ve Safari gibi çapraz tarayıcı desteği ait

+0

JSZip Web sitesi tüm tarayıcılar çalışabilir önerir, ancak sadece IE URL ve bazı içerikle çalışmaz, ancak birlikte çalışır Safari. Şansınız, bunu yapmak için nasıl yaptığınızı değiştirebilirsiniz. – pickypg

+2

bu demoda iyi davranıyor gibi görünüyor: 'safari http://htanjo.github.io/jszip-demo/ –

+0

Yukarıdaki demo Safari çöker. JSZip'in yaratıcısı Safari'yi ya da IE için blobları indirme desteğinin bulunmadığını belirttiği için cevaplar/yorumlardaki bilgiler güncelliğini yitirdi. – volx757

cevap

3

http://stuk.github.io/jszip/

Çok şey, sorun kodu veya URL içinde yatıyor. URL'lerinizi özelleştirir ve başka bir çözüme geçmeden önce sorunlara neden olabilecek diğer kodları araştırırdım. Ayrıca

verdiğim URL'de dosya adı problemleri üzerinde bölümünü okuyun:

"Filename problems 
The biggest issue with JSZip is that the filenames are very awkward, Firefox generates filenames such as a5sZQRsx.zip.part (see bugs 367231 and 532230), and Safari isn't much better with just Unknown. Sadly there is no pure Javascript solution (and working in every browsers) to this. However... 

Solution-ish: Downloadify 

Downloadify uses a small Flash SWF to download files to a user's computer with a filename that you can choose. Doug Neiner has added the dataType option to allow you to pass a zip for downloading. Follow the Downloadify demo with the following changes: 

zip = new JSZip(); 
zip.add("Hello.", "hello.txt"); 
Downloadify.create('downloadify',{ 
... 
    data: function(){ 
    return zip.generate(); 
    }, 
... 
    dataType: 'base64' 
}); 
Other solution-ish: Blob URL 

With some recent browsers come a new way to download Blobs (a zip file for example) : blob urls. The download attribute on <a> allows you to give the name of the file. Blob urls start to be widely supported but this attribute is currently only supported in Chrome and Firefox (>= 20). See the example. 

var blob = zip.generate({type:"blob"}); 
myLink.href = window.URL.createObjectURL(blob); 
myLink.download = "myFile.zip";" 
İlgili konular