在下载之前添加文本文件到zip(js)

时间:2014-08-24 05:34:27

标签: javascript zip

我需要在下载之前将新文本文件添加到现有的zip文件(.tgz)中。 我该怎么做呢?

文本文件即时创建。

缺少的是解压缩现有文件的步骤,然后使用新的文本文件再次压缩它。

请指教, 谢谢!

1 个答案:

答案 0 :(得分:0)

强烈建议您查看服务器端解决方案,因为我发现的内容表明您想要的并不简单。如果您认为这必须是客户端解决方案,那么这里有一些对您有帮助的资源:

NPM

NPMNode.js的包管理器。 NPM有一个巨大的注册表,其中包含各种功能的javascript模块。 NPM上的大多数模块都是在Node.js(服务器端)而不是浏览器(客户端)上运行。但是,有两个模块可以兼用。

Browserify

Browserify是一个NPM模块,让您以与Node.js应用相同的方式编写浏览器应用程序代码。它处理所有依赖关系并且是纯粹的魔法。

.tgz vs .zip

我不确定你(或将来的任何人)对.tgz / .tar.gz(同样的)文件有多了解,所以我会稍微解释一下。如果您已经知道这一点,请跳过此部分。

普通的.zip文件实际上做了两件不同的事情:

  1. 将您想要的文件合并到一个文件中
  2. 获取转换后的文件并对其进行压缩,从而输出.zip文件
  3. 但是,对于.tar.gz.tgz,这些步骤将单独处理。扩展程序.tgz实际上是.tar.gz的简写。扩展名表示某些文件已合并为.tar,然后压缩为.gz

    如果您想将文本文件注入.tgz,请执行以下步骤:

    1. .tgz解压缩为.tar
    2. .tar打包到内存中
    3. 将文本文件注入原始.tar的文件
    4. 将修改后的文件重新打包为.tar
    5. .tar压缩回.tgz.tar.gz

    6. 从头开始写一些东西可能是一项艰巨的任务,所以我会试着让你走上正确的道路。

      如果您查看Browserify的文档,它有自己的浏览器版本的节点模块zlib。 Zlib处理gunzip压缩。

      对于处理tarballs,NPM上有很多不同的模块可以帮助你(只需在NPM上搜索“tar”)。我完全不知道哪些是可以浏览的,所以这将需要一些试验和错误。

      祝你好运

      旁注:您可能做的其他事情是,您可以将原始.tgz与您的文本文件打包成一个原始.tgz,而不是尝试解压缩原始文件.tar。 {{1}},因此完全绕过了第1步,第2步和第5步。