如何在linux和windows中使用php处理文件创建和压缩
我的代码有一个问题,我用它来创建一个临时文件夹,在那里我存储一些qrcode png图像,然后压缩整个文件夹,然后通过json发送,在本地它工作得很好,但在生产环境中它不工作,我的猜测是,这是一个与我在本地使用windows而生产环境使用linux这一事实相关的问题如何在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
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
在失败时返回布尔值,请检查这些函数。调试时,请确保将错误处理设置为非常响亮。