我有几行代码会创建一个空的zip文件,并将其放入其中。
$zip = new ZipArchive();
$generatedname = uniqid().'.zip';
$res = $zip->open('tmp/'.$generatedname, ZipArchive::CREATE);
$res
为5,与读取错误相对应,当我去添加文件时,我得到一个错误,表明未初始化zip。此代码在我的本地计算机上有效,但在我的iis服务器上不起作用,因此是某种配置错误?
我可以使用fopen和fwrite读写文件,所以我认为这与rw权限无关,所以我有点排除故障排除的想法。
答案 0 :(得分:0)
好的,我实际上已经弄清楚了。
问题实际上是在创建zip的位置。我要在工作目录中将其设置为/tmp
,因为我要先下载文件,然后立即将其删除。
因此,我发现this文章讨论了如何使用php总是可以写目录,因此在系统temp目录中创建我的zip文件似乎已经成功了。继承人更新的代码:
chdir( sys_get_temp_dir() );
$zip = new ZipArchive();
$generatedname = uniqid().'.zip';
$zip->open($generatedname, ZipArchive::CREATE);