0

我使用 Php(Zend 框架)将数据网格下载为 CSV..csv 生成工作正常。我只想知道是否可以在 zip 文件中下载 csv 文件

我当前的代码

public function downloadCsvAction(){
    header("Content-type: application/csv");
        header("Content-Disposition: attachment; filename=answers_csv.csv");
        header("Pragma: no-cache");
        header("Expires: 0");
        echo "stuff1" . ",";
        echo "stuff2".",";
        //----bla bla

   exit;

}

通过调用 urlcontroller/downloadCsv我得到一个弹出窗口来保存 csv。我希望 csv 保存在一个 zip 文件中

4

2 回答 2

3

这是一个简单的代码,用于将 csv 压缩并输出为 zip 文件

//here is your csv file
$csvFile    = "test.csv";

//location for php to create zip file.
$zipPath    = "/tmp/$csvFile.zip";

$zip = new ZipArchive();
if ($zip->open($zipPath,ZipArchive::CREATE)) {
    $zip->addFile($csvFile, $csvFile);
    $zip->close();
    //Make sure the zip file created and output it.
    if(is_file($zipPath)){
        header('Content-type: application/octet-stream; charset=utf-8');
        header('Content-Disposition: attachment; filename="'.$csvFile.'.zip"');
        header('Content-Length: ' . filesize($zipPath));
        readfile($zipPath,false);
    }   
}
于 2013-08-30T11:42:18.617 回答
1

我只想知道是否可以在 zip 文件中下载 csv 文件

对的,这是可能的。只需创建一个 ZIP 文件并将 CSV 文件放入其中。然后交付 ZIP 文件。

如果您正在寻找更多技术信息,请阅读相关的问答材料,因为具体代码与您需要实现的目标有很大差异:

于 2013-08-30T10:48:36.800 回答