问题标签 [php-zip-archive]

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 投票
1 回答
691 浏览

php - PHP ZipArchive 类不创建存档

我正在尝试使用以下代码创建所选文件的存档

在这里,我尝试将input.zip存档提取到工作区目录,以更改 zip 存档中包含的文件。在此之后,我想再次将所有文件压缩回output.zip存档。

$files在编辑文件时,不会在任何地方触及用于存储提取文件名的变量。文件名是硬编码的,不会通过任何变量接收。

最终保存output.zip存档的最后一行在控制台上给出了以下警告:

PHP 警告:ZipArchive::close(): Read error: Is a directory in /home/user/zip.php on line 100

我无法理解这次失败的原因。错误信息不清楚。这次失败的原因是什么?

编辑:

根据要求,添加了调用上述归档处理程序的代码。

这是 CakePHP 3 应用程序的一部分。考虑到提示注释,当我在 CakePHP 3 应用程序之外独立运行代码时,它工作得很好。但是在 CakePHP 应用程序内部存在一些问题。我正在添加额外的标签来突出 CakePHP 社区中的问题。

0 投票
1 回答
2627 浏览

php - 提取 ZIP 文件,包括隐藏文件

我正在使用 ZipArchive,我想提取 ZIP 文件。我可以在 ZipArchive::extractTo 的文档中看到评论:

请注意,在 Linux(也可能是其他 *nix 平台)中,无法从 Zip 存档中提取隐藏文件(也就是以“.”开头的文件名)。

非常重要的注意事项:我需要它在 *nix 和 Windows 平台上工作。

那么如何正确地将 ZIP 文件提取到目录中,包括隐藏文件?

在此先感谢,JK。

0 投票
0 回答
304 浏览

php - PHP ZipArchive 文件迭代忽略目录

我第一次在 PHP 中使用 ZipArchive 类,我遇到了一些麻烦。我要做的就是遍历 ZIP 存档中的文件,一切正常,但似乎没有任何方法可以获取 ZIP 文件中的子目录名称,而我需要这些信息。如果子目录中有文件,我想我可以从文件名中解析出目录名,但是如果有空目录,它们就会完全丢失。

例如,如果我在 ZIP 中有这个目录树:

现在我尝试在 PHP 中像这样将该 ZIP 文件的条目读入内存:

如果我这样做,则root_folder\test_file.ext可以正确找到,但root_folder\empty_dir会完全丢失。

那么如何使用 ZipArchive 类来查找所有文件和目录,包括存档中的空文件和目录?

0 投票
1 回答
7851 浏览

php - ZipArchive::CREATE 未创建 zip 文件并返回 true

您好,我只是使用 php 创建一个 zip 文件,但该文件未创建,但它返回布尔值 true ,我不知道发生了什么问题。在创建之前我做了什么

  1. 我在我的Ubuntu中安装了php zip,sudo apt-get install php-zip安装后我重新启动了我的apache服务器。

  2. 创建一个 zip.php 文件并编写此代码

$zip = new ZipArchive; //var_dump($zip->open('test.zip',ZipArchive::CREATE)); $f = $zip->open('zip/myzip.zip',ZipArchive::CREATE); var_dump($f);

此代码返回 true 但未创建文件

  1. 没有任何文件权限问题我已经将它提供给我的目录。
0 投票
1 回答
1730 浏览

php - 将 zip:// 包装器用于包含名称未知的单个文件的存档

zip:// PHP 允许使用wrapper即时读取 ZIP 文件:

一切都好,当您知道压缩文件名时。这不是我的情况:我的应用程序必须处理包含单个文件的 ZIP 存档,在打开存档之前该文件的名称未知。

是否有一个选项告诉包装器打开存档中的第一个文件,没有文件名?

我知道我可以使用ZipArchive 或 Zip Functions,我只想保持简单并尽可能使用流包装器。

0 投票
1 回答
1024 浏览

php - 更改使用 php 创建的 zip 文件的名称

我有一个用于创建带有图像的 zip 的脚本。它真的很好用!

当我下载文件时,它的名字很好zip/download-'.$id_account.'-'.$time.'.zip 但是当我想提取它时,提取文件夹总是命名为files. 结果

请问您有任何想法将我解压缩的文件重命名为另一个名称吗?

非常感谢 !

0 投票
1 回答
1395 浏览

php - PHP ZipArchive 不支持 UTF8 文件打开

PHP ZipArchive 不支持 UTF8 文件打开

我的问题是带有 UTF8 名称的 OPEN 文件。ZipArchive 不打开带有 UTF8 字符的文件。我不添加新文件我只需要打开文件。

php: 5.6 并使用 Yii2。

代码:

0 投票
1 回答
2866 浏览

php - 什么会导致取消链接返回“资源暂时不可用”?

我想创建一个 .zip 存档,将其上传到 Amazon S3,然后从服务器中删除创建的 .zip。步骤 1 和 2 运行良好,但删除步骤正在返回:

unlink(temp/file.zip): Resource temporarily unavailable

我已经尝试了unset所有相关的变量和资源,但我仍然收到错误消息。

这是代码:

一些额外的细节:我正在使用 Lumen 5.4 和 aws-sdk-php-laravel 包。

任何见解将不胜感激!谢谢。

0 投票
1 回答
910 浏览

php - 无法使用 zip 存档在 php 中创建有效的 zip 文件?

我正在使用 ziparchive 为某些文件创建 zip,然后需要使用以下代码下载文件。

假设$valid_files包含一个数组,其中每个元素作为完整的文件路径。上面的代码预计会创建一个包含文件的 zip 文件,但相反,一旦启动下载,它就会继续下载,没有任何完成大小或最大大小。在某些情况下,即使文件已下载,当我们尝试解压缩文件时,它也会显示错误文件为无效文件。非常感谢无法找出问题的任何帮助。

0 投票
1 回答
77 浏览

php - PHP ZipArchive,禁用输出/回声/日志

我在 API 中运行 PHP ZipArchive,它在adding: uploads/AUFIC/ps.csv (stored 0%)运行时像响应正文一样输出,如何禁用此输出打印?

这是包含 ZipArchive 的函数,它排列一些文件,然后压缩这些文件并将其上传到 S3,然后返回该 zip 文件的 URL: