创建Zip返回读取错误

时间:2018-07-19 19:19:32

标签: php file php-7 ziparchive

我有几行代码会创建一个空的zip文件,并将其放入其中。

$zip = new ZipArchive();
$generatedname = uniqid().'.zip';
$res = $zip->open('tmp/'.$generatedname, ZipArchive::CREATE);

$res为5,与读取错误相对应,当我去添加文件时,我得到一个错误,表明未初始化zip。此代码在我的本地计算机上有效,但在我的iis服务器上不起作用,因此是某种配置错误?

我可以使用fopen和fwrite读写文件,所以我认为这与rw权限无关,所以我有点排除故障排除的想法。

1 个答案:

答案 0 :(得分:0)

好的,我实际上已经弄清楚了。 问题实际上是在创建zip的位置。我要在工作目录中将其设置为/tmp,因为我要先下载文件,然后立即将其删除。

因此,我发现this文章讨论了如何使用php总是可以写目录,因此在系统temp目录中创建我的zip文件似乎已经成功了。继承人更新的代码:

chdir( sys_get_temp_dir() );

$zip = new ZipArchive();
$generatedname = uniqid().'.zip';
$zip->open($generatedname, ZipArchive::CREATE);