我想在PHP中使用zip流包装器来创建zip文件或在zip存档中添加文件。这是我的例子:
<?php
echo file_get_contents('zip://file.zip#existing_file.txt');
file_put_contents('zip://file.zip#new_file.txt', 'Trying to put some stuff here...');
echo file_get_contents('zip://file.zip#new_file.txt');
这段代码告诉我这个输出:
$ php test.php
Hey, I'm an existing text in a file in a zip archive !
Warning: file_put_contents(zip://file.zip#new_file.txt): failed to open stream: operation failed in /home/sylvain/test.php on line 7
Warning: file_get_contents(zip://file.zip#new_file.txt): failed to open stream: operation failed in /home/sylvain/test.php on line 9
当zip文件不存在时,我收到同样的错误。
以下是文件权限:
$ ls -la
total 24
drwxrwxrwx 2 sylvain sylvain 4096 2009-11-13 14:44 .
drwxr-xr-x 134 sylvain sylvain 12288 2009-11-13 14:44 ..
-rwxrwxrwx 1 sylvain sylvain 236 2009-11-13 14:44 file.zip
-rwxrwxrwx 1 sylvain sylvain 268 2009-11-13 14:44 test.php
是否可以在不创建新的流包装的情况下执行我正在尝试的操作?
答案 0 :(得分:1)
zip://
流包装器不支持写入:http://php.net/manual/en/wrappers.compression.php
此外,由于CRC位于压缩数据
之前,因此无法在流中写入Zip存档答案 1 :(得分:0)
嘿,你厌倦了将你的文件夹chmod到ZIP文件所在的777?
编辑:看起来您的文件不是777和您的文件夹。我错了,只是醒了。 chmod 777文件夹本身,如果不起作用,请告诉我。