我想使用 javascript 从文件或 blob 对象中解压缩文件

发布于 2024-12-24 17:56:20 字数 385 浏览 1 评论 0原文

我想用javascript读取一个pptx文件,所以我想解压它并读取内存中的内容。我不想先将文件存储在服务器上。我想选择一个具有输入类型文件的文件,然后使用输入元素的文件并读取它的二进制文件或类似的文件。

我发现很多库可以从 url 解压缩 zip 文件,我尝试查看代码,但无法弄清楚将其用于 blob 或字节数组。

我可以阅读一些类似此处描述的内容:http://en.wikipedia。 org/wiki/ZIP_%28file_format%29#File_headers

但我不知道紧缩如何在字节或位级别上工作。

I would like to read a pptx file in javascript, so I would like to unzip it and read the content in memory. I don't want to store the file first on a server. I want to choose a file with a input type file and just use the file of the input-element and read it binary or something like that.

I found a lot of libraries to unzip zip-files from url, I tried to look at the code but I couldn't figure it out to use it for a blob or byte array.

I can read some stuff like the things described here: http://en.wikipedia.org/wiki/ZIP_%28file_format%29#File_headers

But I don't know how deflating works on byte- or bit-level.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生殊途 2024-12-31 17:56:20

(您说过您想使用 input 元素,所以我猜这是基于浏览器的 JavaScript。)

您的第一步将是使用 文件 API 将文件读取为 二进制字符串。请参阅我对另一个问题的回答一个例子。然后你需要找到一个图书馆。快速搜索发现 这个 实现了 inflate 和 deflate。 (我没有使用它的个人经验,只是在另一个问题的答案中找到它。 )

当然,这只适用于支持文件 API 的相当现代的浏览器。否则,您别无选择,只能将文件推送到服务器并在那里完成工作,因为如果没有文件 API,您将无法在浏览器中访问文件的内容。

(You've said you want to use an input element, so I'm guessing this is browser-based JavaScript.)

Your first step will be to use the File API to read the file as a binary string. See my answer to this other question for an example of that. Then you'll need to find a library. A quick search discovered this one that implements both inflate and deflate. (I don't have personal experience using it, just found it in an answer to this other question.)

Naturally this will only work on quite modern browsers that support the File API. Otherwise, you have no option but to push the file to a server and do the work there, since you can't access the content of the file in the browser without the File API.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文