问题标签 [pclzip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
157 浏览

php - 使用 php 在一个存档中为服务器下载多个存档

我需要做一个应用程序,让用户在服务器中下载大量图片,选择一些标准并且只在一个存档中。我尝试使用 web 上的 php 和 pclzip.lib 和 zipstream 库,但是这两种方法都不起作用。使用 pclzip 我只能压缩 3Mb,而在下载过程中使用 zipstream 库,它会以 25MB 大小失败。我不知道用户需要下载多少档案,但现在我有大约 700 个档案和 75MB。是否有另一种方法可以使此应用程序正常工作,或者是否有人对这个库有类似的问题并解决了它。这里有一些更多的规范:远程服务器 iis、php。谢谢和对不起我的英语

0 投票
1 回答
3054 浏览

php - PHP - PCLZIP 从字符串添加文件

PCLZIP 是一个很棒的库,但不幸的是它的文档记录很差。我正在使用它来支持禁用 ZipArchive 的服务器(或不支持 php 版本)

我具有将上传的文件(一个一个)添加到 ZIP 存档的功能。如果存档不存在,它会创建一个,如果存档存在,它只是添加新文件。

我遇到的问题是添加 TXT 文件的功能,该文件基于存档中的评论。(该函数读取先前准备好的注释,并应从字符串创建一个 TXT 文件并插入到存档中。)

我似乎找不到从字符串覆盖文件的函数(或者我不知道如何使用它)。

我可以创建它 PCLZIP_ATT_FILE_NAME,但不知何故,当我运行该函数时,它会创建一个新.txt文件(具有相同的文件名!)每次将文件添加到存档(而不是覆盖现有文件)我尝试使用PCLZIP_ATT_FILE_NEW_FULL_NAME-但我找不到在哪里将参数提供给它需要覆盖的文件..

功能在这里:(对不起,如果它很长..)

所以 - 任何人都知道如何使用 PCLzip 从字符串(而不是文件..)覆盖文件?

0 投票
1 回答
536 浏览

php - PCLZip - 在提取之前重命名存档中的文件夹是否可以发布?

我有一种情况,我正在下载一个 zip,需要在解压缩之前重命名其中一个文件夹。这可能使用 PCLZip 吗?

0 投票
2 回答
1270 浏览

php - 解压到变量

我需要处理压缩文件的内容,但我无法更改托管我的程序的服务器上的权限。

这意味着我无法将 zip 文件下载到服务器,因此我需要将文件的内容读入一个变量而不将其写入文件系统。

我可以获取此类变量的字符串内容并将解压缩的内容放入新变量吗?

到目前为止,我已经研究过使用 zip php 扩展和 pclzip 库,但两者都需要使用实际文件。

这就是我想用伪代码做的事情:

有任何想法吗?

0 投票
2 回答
2362 浏览

php - 使用 PHP PCL Zip 在多次调用中压缩单个大文件

100 MB 文件 --> 10 个 ZIP 调用(每次调用 10 MB zip) --> 1 个 ZIP 文件

我应该发起 10 次调用以将单个 100 MB 文件添加到 Zip 文件中(例如每次调用 10 MB 压缩)。

问题是我们有一个具有内存和时间限制的系统(它不会处理超过 10 到 15MB 的呼叫)。

所以压缩一个有很多调用的大文件是基本的想法。

如果需要,我准备提供更多数据。

0 投票
9 回答
68627 浏览

php - Wordpress 主题上传错误 PCLZIP_ERR_BAD_FORMAT

我是 php 和 wordpress 的新手,但是由于某些需要,我只能使用 wordpress。因此,刚开始我阅读了教程并创建了自己的 wordpress 主题,当我尝试上传主题时,出现以下错误:

搜索相同的内容,我发现通常导致此类错误的原因是最大可用空间或上传文件大小问题。但是,由于我在 localhost 上工作,所以我认为情况并非如此。此外,我还增加了upload_max_filesize,post_max_sizememory_limit。但我仍然遇到同样的错误。

我正在使用 Wordpress 3.5.2。

0 投票
0 回答
334 浏览

php - PhpExcel 不会在 IE10 上创建文件

我正在使用 PhpExcel 创建包含可变数量数据的文件。这是它的工作原理:

  • 用户选择开始日期和结束日期
  • 生成配置文件列表
  • 用户单击一个名为“To Excel”的按钮,然后生成一个文件,其中包含每个配置文件的两个选定日期之间的事件列表
  • 创建每个 xlsx 文件后,将生成一个 zip 存档并出现常用下载窗口

我在 FF、Chrome、Opera 和 IE9 上对其进行了测试,一切似乎都很好。zip 存档是有效的,我可以提取所有正确生成的 xlsx 文件。

不幸的是,在 IE10 上,发生了一些奇怪的事情:它只工作了一半(我尝试过一次,它不起作用。我刷新了。它起作用了。我刷新了。它不起作用等等)。发生的情况是缺少一个或多个 xlsx 文件。例如,我预计会有 16 个文件,但我只收到了 15 个。

所以我做了这样的事情:当用户点击“到 Excel”按钮时,对于列表的每个元素,完成一个 AJAX 请求并调用“Excel 脚本”

我还测试当前元素是列表的第一个元素还是最后一个元素。如果它是第一个元素,在我的“Excel 脚本”中,我清空包含旧 xlsx 文件的临时文件夹。如果它是最后一个元素,在成功时,我会这样称呼“Zip Script”:

所以,这样,我就有了“确认下载框”。我的“Excel 脚本”很大,所以我不会完全发布它,但这里是一瞥:

当调用“Zip Script”时,它知道临时文件夹中应该有多少文件。所以它会等到每个文件都到达,然后创建 zip 存档。

就像我说的,FF、Chrome、Opera 和 IE9 一切都很好。文件在那里,zip 存档也有,xlsx 文件格式正确,数据正确。但不是在IE10中...

我注意到的是,如果我在每个日期之间选择一个大的间隔,我会有更多的数据(当然)。因此,某些文件没有创建,因为它们太大(我的服务器有一些限制)并且出现了致命错误。因此,由于缺少某些文件,无法创建 zip 存档。

我认为这可能是答案,我试图用“$cacheMethod”解决这个问题,但没有奏效。当问题出现时,我查看了 IE10 的控制台,但什么也没有(我什至在 IE 上安装了 Firebug ...)。

有人可以帮我一把,或者只是向我解释我做错了什么吗?会很感激的!非常感谢!

编辑

这是我在 IE10 上使用 Firebug 时得到的结果

标头

回复

空的

编辑 2

如果我设置它似乎工作:

因此,文件一个接一个地创建。然后,我的 zip 存档中有正确数量的 xlsx 文件。

0 投票
1 回答
291 浏览

pclzip - PCLZIP 重组文件路径

我想知道是否可以在加载存档时使用 PCLZip 删除父目录;无需先提取它并重新编译它。

我可以使用以下方法删除存档中的父目录:

并且 zip listContent 似乎显示父目录已删除

但是当我浏览加载的档案时,子文件和文件夹仍然托管在父目录中。我相信这是因为它们的结构定义仍然包含父目录。

0 投票
1 回答
117 浏览

php - PCLZIP creates a zip which is blocked by Gmail because falsely interpreted as a zip containing an executable

I am using PCLZIP to create a ZIP that contains few documents and pdfs. On some machine, users are claiming zip to be corrupted.

On my machines, I don't see ZIP to be corrupted, but whenever I try to send that zip via Gmail, it blocks the ZIP saying it contains an executable, but in fact all that zip have are documents and PDF files. So I see relation between people claiming that zip are corrupted and Gmail blocking these zip created from our app.

I have tried extracting all the files and again adding them in a zip using Window's add to archive option. And if I send this zip, gmail doesn't block.

So I believe there has to be some problem when I am creating ZIP in my PHP app.

Here is the relevant portion of the code where I am creating ZIP:

What am I doing wrong?

0 投票
1 回答
379 浏览

php - 在 php 中处理大型压缩文件

我正在尝试在我的服务器中一次压缩许多图像。压缩文件的大小范围为 250MB-750MB 我使用的是 pclzip 库。

我正在使用共享主机,因此最大执行时间和内存限制是有限的。我怎么解决这个问题?或请告诉我任何替代解决方案。

谢谢