【问题标题】:Is it possible to upload and extract a zip file to a given location using only HTML and JavaScript?是否可以仅使用 HTML 和 JavaScript 将 zip 文件上传并提取到给定位置?
【发布时间】:2011-12-08 10:40:19
【问题描述】:

我有一个网页,它要求用户在他们的机器上选择一个 zip 文件并上传。它还询问 zip 文件应该去的服务器上的目的地。我希望它以这样的方式工作,当他们告诉我文件在他们机器上的位置以及它在我的服务器上的位置时,然后单击“发送”,它应该被发送到我的服务器,放在指定的目录中,然后解压。

我只想用 HTML 和 JavaScript 来做这件事。那可能吗?如果是这样,我将如何去做?

【问题讨论】:

  • 如果要将结果存储在服务器端的文件夹中,使用纯 JavaScript 是不可能的。
  • 你不能只用JS上传文件,你还需要一些服务器端编程,比如PHP..!
  • 你不能这样做 - 如果你想知道为什么,我建议你想想如果你可以这样做,恶意软件作者会做什么。跨度>
  • 有javascript解压工具,你需要一些服务器交互才能将文件存储在服务器上。

标签: javascript html zip


【解决方案1】:

您必须在服务器端执行此操作;客户端的浏览器无法直接写入服务器的文件系统,存在巨大的安全隐患。

除此之外,即使是带有 File API 的 HTML5 也无法提取 ZIP 文件。您需要在服务器上使用 PHP 或您使用的任何语言来完成。

如果您只想在客户端本地执行操作,您可以考虑使用 Flash/Java/Browser 扩展,但出于兼容性和性能原因,我不推荐它。最好的办法是向服务器发送一个请求,让它处理并发回。您已经在为 HTML 页面提供服务,因此您可以使用同一台服务器来处理 ZIP 文件。

另一方面,如果您想将 ZIP 文件写入服务器,出于我第一段所述的原因,您必须在服务器端进行。

【讨论】:

  • 我可以在客户端自己完成这一切吗?没有和服务端交互?
  • @dibya 你的意思是,目标文件夹也在用户的驱动器上?那么使用网页而不是普通的本地解压缩应用程序解压缩文件有什么意义?
  • @JamWaffles - 我只需要展示一个可以在我的本地机器上运行的模型。稍后我必须将其扩展到服务器端
  • @Pekka - 必须在本地系统中的网页上运行它。它只是一个模型。稍后我将不得不将其扩展到服务器端。
  • 如果您无论如何都要把它扩展到服务器端进程,为什么不编写模型让它这样做呢?你应该看看HTML 5 file API
【解决方案2】:

您可以使用 rawdeflate 在 JavaScript 中解压缩/压缩内容。

正如其他海报所暗示的,您不能使用普通浏览器直接保存到本地文件系统。您要么需要将结果回显到服务器上(在这种情况下也可以解压缩),或者您可以使用 Flash,例如 Downloadify(如果已安装)。

大多数现代浏览器都支持FileAPI 从本地文件系统加载,当然,Chrome、Firefox 和 Opera 也支持。我还没有测试过 IE 9。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-16
    • 2012-05-20
    • 2013-03-17
    • 2011-06-30
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多