0

嗨,我正在使用以下代码创建受密码保护的 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);

但它不工作。

4

2 回答 2

1

相同的代码对我有用。当我第一次运行它时,出现权限错误,当我授予文件夹权限时,它起作用了。您还可以检查文件夹权限。它也可能对你有用。

于 2013-03-04T08:22:11.603 回答
0

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

于 2013-03-04T08:37:34.163 回答