如何在临时内存中创建一个zip文件,而不是在我的托管中使用php然后下载?

时间:2013-09-21 20:18:35

标签: php mysql

我创建了一个zip文件。但我不在我的托管中创建任何文件。我想虚拟创建一个zip文件(即Temp Memory),然后下载它。我将如何使用PHP完成此过程?

1 个答案:

答案 0 :(得分:1)

引用nettle that answered this in a previoues question

  

我有同样的问题,但终于找到了一个有点模糊的解决方案   并决定在这里分享。

     

我遇到了很棒的zip.lib.php / unzip.lib.php脚本   使用phpmyadmin并位于“libraries”目录中。

     

使用zip.lib.php作为我的魅力:

require_once(LIBS_DIR . 'zip.lib.php');

... 

//create the zip $zip = new zipfile();

//add files to the zip, passing file contents, not actual files
$zip->addFile($file_content, $file_name);

...

//prepare the proper content type header("Content-type:
application/octet-stream"); header("Content-Disposition: attachment;
filename=my_archive.zip"); header("Content-Description: Files of an
applicant");

//get the zip content and send it back to the browser echo
$zip->file(); 
  

这个脚本允许下载一个zip,没有   需要将文件作为真实文件或将zip本身保存为   文件。

     

遗憾的是,此功能不是更通用的功能的一部分   PHP库。

     

以下是phpmyadmin源码中zip.lib.php文件的链接:   https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/zip.lib.php

     

确保从头开始删除以下检查   zip.lib.php,否则脚本会终止:

    if (! defined('PHPMYADMIN')) {
    exit;
}