问题标签 [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.
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 社区中的问题。
php - 提取 ZIP 文件,包括隐藏文件
我正在使用 ZipArchive,我想提取 ZIP 文件。我可以在 ZipArchive::extractTo 的文档中看到评论:
请注意,在 Linux(也可能是其他 *nix 平台)中,无法从 Zip 存档中提取隐藏文件(也就是以“.”开头的文件名)。
非常重要的注意事项:我需要它在 *nix 和 Windows 平台上工作。
那么如何正确地将 ZIP 文件提取到目录中,包括隐藏文件?
在此先感谢,JK。
php - PHP ZipArchive 文件迭代忽略目录
我第一次在 PHP 中使用 ZipArchive 类,我遇到了一些麻烦。我要做的就是遍历 ZIP 存档中的文件,一切正常,但似乎没有任何方法可以获取 ZIP 文件中的子目录名称,而我需要这些信息。如果子目录中有文件,我想我可以从文件名中解析出目录名,但是如果有空目录,它们就会完全丢失。
例如,如果我在 ZIP 中有这个目录树:
现在我尝试在 PHP 中像这样将该 ZIP 文件的条目读入内存:
如果我这样做,则root_folder\test_file.ext
可以正确找到,但root_folder\empty_dir
会完全丢失。
那么如何使用 ZipArchive 类来查找所有文件和目录,包括存档中的空文件和目录?
php - ZipArchive::CREATE 未创建 zip 文件并返回 true
您好,我只是使用 php 创建一个 zip 文件,但该文件未创建,但它返回布尔值 true ,我不知道发生了什么问题。在创建之前我做了什么
我在我的Ubuntu中安装了php zip,
sudo apt-get install php-zip
安装后我重新启动了我的apache服务器。创建一个 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 但未创建文件
- 没有任何文件权限问题我已经将它提供给我的目录。
php - 将 zip:// 包装器用于包含名称未知的单个文件的存档
zip://
PHP 允许使用wrapper即时读取 ZIP 文件:
一切都好,当您知道压缩文件名时。这不是我的情况:我的应用程序必须处理包含单个文件的 ZIP 存档,在打开存档之前该文件的名称未知。
是否有一个选项告诉包装器打开存档中的第一个文件,没有文件名?
我知道我可以使用ZipArchive 或 Zip Functions,我只想保持简单并尽可能使用流包装器。
php - 更改使用 php 创建的 zip 文件的名称
我有一个用于创建带有图像的 zip 的脚本。它真的很好用!
当我下载文件时,它的名字很好zip/download-'.$id_account.'-'.$time.'.zip
但是当我想提取它时,提取文件夹总是命名为files
.
结果
请问您有任何想法将我解压缩的文件重命名为另一个名称吗?
非常感谢 !
php - PHP ZipArchive 不支持 UTF8 文件打开
PHP ZipArchive 不支持 UTF8 文件打开
我的问题是带有 UTF8 名称的 OPEN 文件。ZipArchive 不打开带有 UTF8 字符的文件。我不添加新文件我只需要打开文件。
php: 5.6 并使用 Yii2。
代码:
php - 什么会导致取消链接返回“资源暂时不可用”?
我想创建一个 .zip 存档,将其上传到 Amazon S3,然后从服务器中删除创建的 .zip。步骤 1 和 2 运行良好,但删除步骤正在返回:
unlink(temp/file.zip): Resource temporarily unavailable
我已经尝试了unset
所有相关的变量和资源,但我仍然收到错误消息。
这是代码:
一些额外的细节:我正在使用 Lumen 5.4 和 aws-sdk-php-laravel 包。
任何见解将不胜感激!谢谢。
php - 无法使用 zip 存档在 php 中创建有效的 zip 文件?
我正在使用 ziparchive 为某些文件创建 zip,然后需要使用以下代码下载文件。
假设$valid_files
包含一个数组,其中每个元素作为完整的文件路径。上面的代码预计会创建一个包含文件的 zip 文件,但相反,一旦启动下载,它就会继续下载,没有任何完成大小或最大大小。在某些情况下,即使文件已下载,当我们尝试解压缩文件时,它也会显示错误文件为无效文件。非常感谢无法找出问题的任何帮助。
php - PHP ZipArchive,禁用输出/回声/日志
我在 API 中运行 PHP ZipArchive,它在adding: uploads/AUFIC/ps.csv (stored 0%)
运行时像响应正文一样输出,如何禁用此输出打印?
这是包含 ZipArchive 的函数,它排列一些文件,然后压缩这些文件并将其上传到 S3,然后返回该 zip 文件的 URL: