CSV文件到ZIP - PHP代码

时间:2017-05-30 10:50:47

标签: php

我想通过PHP下载多个CSV文件,我知道这是不可能的,因为每次不能发出超过1个请求。

有一个想法来创建多个CSV文件并将它们保存到ZIP文件中,并下载它。可能吗?如果是,你可以给我一个帮助,将2个CSV文件存储到1个ZIP文件中并下载吗?谢谢你。

我的代码到现在为止:

$zip = new \ZipArchive();
$filenameZIP = "./fileZIP.zip";

if ($zip->open($filenameZIP, \ZipArchive::CREATE)!==TRUE) {
    exit("cannot open <$filenameZIP>\n");
}

$filenameCSV = 'file1';
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="' . $filenameCSV . '";');

$f = fopen('php://output', 'a+');

$array    = array();
$array[0] = array(
   'first11',
   'first12',
);
$array[1] = array(
   'first21',
   'first22',
);

foreach ($array as $line) {
   fputcsv($f, $line, ';');
}

header('Content-disposition: attachment; filename=fileZIP.zip');
header('Content-type: application/zip');
readfile($zip->filename);

$zip->close();

1 个答案:

答案 0 :(得分:0)

解决方案:我已在服务器上保存了CSV文件,使用ZipArchive :: addFile()将其添加到ZIP,然后从服务器中删除了CSV文件。