![](/img/trans.png)
[英]PHP setcookie doesn't work after “echo” on production server (it does work on localhost)
[英]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.