如何在linux和windows中使用php处理文件创建和压缩

如何在linux和windows中使用php处理文件创建和压缩,php,linux,windows,rest,Php,Linux,Windows,Rest,我的代码有一个问题,我用它来创建一个临时文件夹,在那里我存储一些qrcode png图像,然后压缩整个文件夹,然后通过json发送,在本地它工作得很好,但在生产环境中它不工作,我的猜测是,这是一个与我在本地使用windows而生产环境使用linux这一事实相关的问题 if (sizeof($tableNum) > 1) { // creating zip file $zip_file = './Pn

我的代码有一个问题,我用它来创建一个临时文件夹,在那里我存储一些qrcode png图像,然后压缩整个文件夹,然后通过json发送,在本地它工作得很好,但在生产环境中它不工作,我的猜测是,这是一个与我在本地使用windows而生产环境使用linux这一事实相关的问题

            if (sizeof($tableNum) > 1) {

                // creating zip file

                $zip_file = './PngQrCodes.zip';

                $zip = new ZipArchive();
                if ($zip->open($zip_file, ZipArchive::CREATE) !== TRUE) {
                    exit(json_encode(array("STATUS" => "ERROR", "MSG" => "problem creating the zip file")));
                }
                // creating /images directory
                if (!file_exists($tmpdir)) {
                    mkdir($tmpdir, 0777, true);

                }

                /*$barcodeobj->getBarcodePNG(6, 6, array(0,0,0));*/
                foreach ($tableNum as $tablename) {


                    // generating Url
                    $code = "URL/table/" . $tablename['name'];

                    //generating Qrcode

                    $barcodeobj = new TCPDF2DBarcode($code, 'QRCODE,L');

                    $fileName = $tablename['name'] . '.png';
                    $path = 'Images/' . $fileName;
                    //transforming qrcode into png image and putting it into /Images directory

                    file_put_contents($path, $barcodeobj->getBarcodePngData(6, 6, array(0,0,0)));


                    //add png qrcode to zip file

                    $zip->addFile($path, $fileName);


                }

                // close zip file

                $zip->close();


                // deleting png qrcodes
                $files = glob('Images/*.*');
                foreach ($files as $file) {
                    unlink($file);
                }

                // download zip file
                ob_clean();
                flush();
                readfile($zip_file);
                json_encode($zip_file);

                unlink($zip_file);

                



            }else {

                $code = "URL/table/" . $tableNum[0]['name'];
                $barcodeobj = new TCPDF2DBarcode($code, 'QRCODE,L');
                $barcodeobj->getBarcodePNG(6, 6, array(0,0,0));
                

在生产环境中,它不起作用,需要澄清哪些不起作用。服务器上的zip文件正常吗?下载失败了吗?“不工作”不是错误消息,也不是对问题的有用描述。尝试清楚具体地描述问题。是的,下载失败,我在前端使用vuejs下载zip文件,但我得到“归档文件的格式未知或存在损坏错误”。它在本地工作正常,我可以提取图像,但目前在生产环境Vue上完全失败。相反,请使用传统浏览器访问URL并查找错误消息。检查服务器日志。几乎所有与文件相关的函数,包括
mkdir
file\u get\u contents
在失败时返回布尔值,请检查这些函数。调试时,请确保将错误处理设置为非常响亮。