Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中创建和下载Zip文件_Php_Zip - Fatal编程技术网

在PHP中创建和下载Zip文件

在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

我已经将LAMP(Linux Apache MySql PHP)系统从物理服务器迁移到虚拟机(干净安装,而不是物理到虚拟传输)。在旧机器上,以下代码将在orders目录中搜索所有$jid.csv文件,创建一个zip文件,然后提示用户下载zip文件。在新机器上,不会创建zip文件,而是会提示用户下载0字节的zip文件。Apache可以写入此文件夹,因为相同的PHP脚本也在创建前面提到的CSV文件

失败的脚本:

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相对。很高兴我们能解决这个问题。祝你好运,朋友。