duanjia8215
2018-03-09 11:32
浏览 458
已采纳

在PHP中从文件流创建Zip

I have created multiple PDF file streams in memory. Can I create a zip file from these streams, and if so how? I want to give the user a downloaded zip of my files without creating any files on the server.

ZipArchive only appears to take file names when running addFile.

图片转代码服务由CSDN问答提供 功能建议

我在内存中创建了多个PDF文件流。 我可以从这些流创建一个zip文件,如果是这样的话怎么样? 我想给用户一个下载的文件zip,而不在服务器上创建任何文件。

ZipArchive 在运行 addFile 时才会显示文件名。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongren9966 2018-03-09 17:11
    已采纳

    I ultimately found my solution here:

    Similar to the solution given there, I used the class from phpmyadmin as follows:

    header('Content-Type: application/octet-stream');
    header("Content-Disposition: attachment; filename='whatever.zip'");
    
    $zip = new ZipFile;
    foreach($pdfs as $idx => $content) {
        $zip->addFile($content, "file$idx.pdf");
    }
    file_put_contents("php://output", $zip->file());
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题