2011-07-25 64 views
1

我正在创建一个PHP脚本,它将从一个位置创建一个zip文件,该位置将是通过$ _GET传递的变量。该位置将是一个文件夹,然后将被压缩,用户将被提示下载该文件夹,下载后该文件夹将需要自动删除。创建一个ZIP文件下载,然后将其删除

任何人都可以帮忙吗?

感谢

+1

你需要什么部分帮助?你试过去[PHP手册](http://php.net)的Zip/ZipArchive章节吗?一个StackOverflow问题应该是一个具体的编程问题,具体的答案,而不是你想写的程序的描述。 –

+0

实际上,您应该可以在内存中构建zip文件,而不是先将其保存到磁盘,然后再次将其删除。虽然这取决于大小。 –

+0

请参阅此类似的问题答案:http://stackoverflow.com/questions/5603851/how-to-create-a-zip-file-using-php-and-delete-it-after-user-downloads-it/17399319 #17399319 [此处输入链接的描述] [1] [1]:http://stackoverflow.com/questions/5603851/how-to-create-a-zip-file-using-php-and -delete-it-user-downloads-it/17399319#17399319 –

回答

4

http://php.net/manual/en/ref.zip.php

你可以做这样的事情:

  • 验证得到
  • 查找,如果该文件夹存在
  • 压缩的文件夹
  • 阅读新创建的zip文件并将其删除最后,像这样:

    header('Content-Description: File Transfer'); 
        header('Content-Type: application/octet-stream'); 
        header('Content-Disposition: attachment; filename='.basename($file)); 
        header('Content-Transfer-Encoding: binary'); 
        header('Expires: 0'); 
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
        header('Pragma: public'); 
        header('Content-Length: ' . filesize($file)); 
        ob_clean(); 
        flush(); 
        readfile($file); 
        @unlink($file); 
    

代码采取弗罗姆在这里:http://php.net/manual/en/function.readfile.php

+0

尽管问题措辞不佳,但这只是我寻找的解决方案,而且它的工作原理! +1 –

相关问题