繁体   English   中英

的PHP:压缩一个csv确实可以在本地主机(xampp)上,但不能在生产服务器上

[英]php: zipping a csv does work on localhost (xampp) but not on production server

我有这个php功能:

function get_partij_download_new($dbmi, $partij) {      
    set_time_limit(0);
    $stmt = $dbmi->prepare("CALL spStartPartijDownload(?)");
    $stmt->bind_param('i', $partij);
    $stmt->execute();
    $result = $stmt->get_result();
    $headers = array('id', 'zorgverlener', 'zorgverlener_type', 'jaar', 'id_contractpartij', 'contractpartij',
    'dc_code', 'dc_oms', 'tt_oms', 'zp_code', 'zp_oms', 'zpg_oms', 'tarief');
    $fp = fopen('php://temp/maxmemory:999999999999', 'w');
    if ($fp && $result) {
        $zipname = 'export_tarvieven_contractpartij.zip';
        $zip = new ZipArchive;
        $zip->open($zipname, ZipArchive::CREATE);
        fputcsv($fp, $headers, ";");
        while($row = $result->fetch_assoc()) {
          fputcsv($fp, $row, ";");
        }
        rewind($fp);
        $zip->addFromString('export_tarieven.csv', stream_get_contents($fp) );
        fclose($fp);
        $zip->close();
    }
    $stmt->close();   
    header('Content-Type: application/zip');
    header('Content-disposition: attachment; filename='.$zipname);
    header('Content-Length: ' . filesize($zipname));
    readfile($zipname);
    unlink($zipname);
}

当我在本地主机(xampp版本5.6.19)上运行此文件时,它工作正常,并提供了一个包含所需csv文件的zip文件。 当我在生产服务器( php版本> 7)上运行完全相同的功能时,它仍会创建zip文件,但该zip文件中不包含csv ,它是空的。

有什么想法吗?

可能是内存问题。 尝试使用不带maxmemory php://temp

$fp = fopen('php://temp', 'w');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM