在PHP中创建密码保护的ZIP文件

在PHP中创建密码保护的ZIP文件,php,Php,嗨,我正在使用以下代码创建密码保护的zip文件 $password = 'pass'; $outfile = 'download.zip'; $infile = 'xml.php'; header("Content-type: application/octet-stream"); header("Content-disposition: attachment; filename=$outfile"); @system("zip -P $password $outf

嗨,我正在使用以下代码创建密码保护的zip文件

$password = 'pass';
$outfile = 'download.zip';    
$infile = 'xml.php';    
header("Content-type: application/octet-stream");   
header("Content-disposition: attachment; filename=$outfile");    
@system("zip -P $password $outfile $infile");    
readfile($outfile);    
@unlink($outfile);

但它不起作用。

同样的代码对我起作用。当我第一次运行它时,我得到了权限错误,当我给文件夹权限时,它工作了。您还可以检查文件夹权限。它可能也适用于您。

假设您的示例被简化,并且密码来自其他地方(可能是用户输入?),那么系统调用是不安全的!如果它包含对shell有意义的字符,则会得到不希望的结果。确保使用escapeshellarg转义参数:

它显示的是什么错误。?停止静音错误。在开发环境中直接显示它们,发布时记录它们。例如,删除函数前面的
@
,并启用错误报告。@Amol Maske:你确定你使用的是免费版本的zip吗?实际上,正在创建download.zip,但当尝试打开该zip文件时,它会说“无法将文件作为存档打开”,你是否尝试取消链接?文件很可能过早删除。