在PHP中创建和下载Zip文件
我已经将LAMP(Linux Apache MySql PHP)系统从物理服务器迁移到虚拟机(干净安装,而不是物理到虚拟传输)。在旧机器上,以下代码将在orders目录中搜索所有$jid.csv文件,创建一个zip文件,然后提示用户下载zip文件。在新机器上,不会创建zip文件,而是会提示用户下载0字节的zip文件。Apache可以写入此文件夹,因为相同的PHP脚本也在创建前面提到的CSV文件 失败的脚本:在PHP中创建和下载Zip文件,php,zip,Php,Zip,我已经将LAMP(Linux Apache MySql PHP)系统从物理服务器迁移到虚拟机(干净安装,而不是物理到虚拟传输)。在旧机器上,以下代码将在orders目录中搜索所有$jid.csv文件,创建一个zip文件,然后提示用户下载zip文件。在新机器上,不会创建zip文件,而是会提示用户下载0字节的zip文件。Apache可以写入此文件夹,因为相同的PHP脚本也在创建前面提到的CSV文件 失败的脚本: else if($loops>1) { header("Content-T
else if($loops>1) {
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=$jid.zip");
system("cd orders;zip $jid.zip $jid-*.csv > /dev/null");
$myFile = "orders/$jid.zip";
readfile("orders/$jid.zip");
}
提前感谢。您是否查看了错误日志,以了解任何有关此问题的信息?您确定安装了
zip
cd orders
我们确信此脚本的执行会从同一路径中调用orders目录?orders文件夹位于apache根目录中。脚本将CSV文件写入orders文件夹,因此我认为路径是正确的。(httpd/error_日志报告:sh:zip:未找到命令)。必须是未安装zip扩展…这是您的问题。服务器上没有安装Zip,它看起来像debian。让我们安装它sudo-apt-get-update
,然后sudo-apt-get-install-zip
就是这样!php-m将zip列为已安装的模块,但zip实际上并没有安装在机器上。这是一台Centos机器,因此yum安装zip工作正常!非常感谢。啊,centos与debian相对。很高兴我们能解决这个问题。祝你好运,朋友。