如何使用javascript在客户端系统中提取Zip文件

Sre*_*har 3 javascript unzip

我在server.i有一个Zip文件我正在下载zip文件保存到客户端system.now我想用javascript提取文件.有人请帮帮我.提前致谢.

Che*_*eso 7

您可以使用Javascript在浏览器中解压缩内存中的zipfiles.

这个答案显示了如何.

浏览器中的js代码如下所示:

var doneReading = function(zip){
    DoSomethingWithEntries(zip);
};

var zipFile = new ZipFile(url, doneReading); 
Run Code Online (Sandbox Code Playgroud)

提供的DoSomethingWithEntries方法内,您可以摆弄代表提取的zip文件的对象.

function DoSomethingWithEntries(zip){ 
  // for each entry in the zip...
  for (var i=0; i<zip.entries.length; i++) {
    var entry = zip.entries[i];
    var entryInfo = "<h4><a>" + entry.name + "</a></h4>\n<div>";  
    // put that into a div, if you like.
    // etc...
  }
}
Run Code Online (Sandbox Code Playgroud)

如上所示,您可以发出条目列表及其名称,大小,日期等.

您还可以extract()在每个zip条目上调用方法.(此处未显示)如果提取,则提取异步发生.内容被扩展为在浏览器javascript环境的内存中维护的字节数组或字符串(取决于条目是二进制还是文本).然后,您可以从压缩条目或任何您喜欢的内容中显示提取的内容.

我不相信你可以与文件系统进行交互,无论是阅读还是写作,除非你诉诸于vanilla javascript以外的东西 - 比如Google Gears,Silverlight和Flash.


小智 1

根据设计,JavaScript 无法访问文件系统。

ActiveX、java 小程序等可能可以实现...