将一个文件夹的内容存到一个压缩文件并下载
2015-05-11 14:34
381 查看
<?php
$filename = "test.zip";
ob_end_clean();
$zip = new ZipArchive();
$zip->open($filename, ZipArchive::OVERWRITE);
$func=dirname(__FILE__)."/test/";
$dir = dir("test");
//列出 images 目录中的文件
while (($file = $dir->read()) !== false)
{
// echo $file."<br />";
if($file !="." && $file !="..")
$zip->addFile( $func."/".$file , basename($func.$file)); //把文件放入zip
// echo "filename: " . $file . "<br />";
}
// $attachfile = $func."test.txt";//写绝对径,建议用PHP环境变量
// // $attachfile=iconv("UTF-8","GBK",$attachfile); //转码,打包中文文档
// $zip->addFile( $attachfile , basename($attachfile)); //把文件放入zip
// $zip->addFile( $attachfile , basename( $func."test1.txt"));
$zip->close();//关闭
header('Content-Description: File Transfer');
Header("content-type:application/x-zip-compressed");
header('Content-Disposition: attachment; filename='.basename($filename));
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($filename));
ob_clean(); //清空但不关闭输出缓存
flush();
@readfile($filename);
@unlink($filename);//删除打包的临时zip文件。文件会在用户下载完成后被删除
$filename = "test.zip";
ob_end_clean();
$zip = new ZipArchive();
$zip->open($filename, ZipArchive::OVERWRITE);
$func=dirname(__FILE__)."/test/";
$dir = dir("test");
//列出 images 目录中的文件
while (($file = $dir->read()) !== false)
{
// echo $file."<br />";
if($file !="." && $file !="..")
$zip->addFile( $func."/".$file , basename($func.$file)); //把文件放入zip
// echo "filename: " . $file . "<br />";
}
// $attachfile = $func."test.txt";//写绝对径,建议用PHP环境变量
// // $attachfile=iconv("UTF-8","GBK",$attachfile); //转码,打包中文文档
// $zip->addFile( $attachfile , basename($attachfile)); //把文件放入zip
// $zip->addFile( $attachfile , basename( $func."test1.txt"));
$zip->close();//关闭
header('Content-Description: File Transfer');
Header("content-type:application/x-zip-compressed");
header('Content-Disposition: attachment; filename='.basename($filename));
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($filename));
ob_clean(); //清空但不关闭输出缓存
flush();
@readfile($filename);
@unlink($filename);//删除打包的临时zip文件。文件会在用户下载完成后被删除
相关文章推荐
- PHP操作之合并CSV文件夹下的所有CSV文件内容到一个CSV文件
- 查看一个归档或压缩文件的内容而无需解压它
- 无需解压如何查看一个归档或压缩文件的内容
- C# 下载FTP服务器一个文件夹内的所有文件
- asp.net实现文件夹及文件压缩,并实现下载(一)
- 020: class, objects and instance: 一个简单的例子,压缩文件中内容的替换
- asp.net实现文件夹及文件压缩,并实现下载
- 查看一个归档或压缩文件的内容而无需解压它
- 修改linux下某一个文件夹下所有文件内容
- PHP压缩一个文件夹里面所有的文件,多文件混合压缩
- 合并一个文件夹下多个文件内容
- c#将一个文件夹及其里面的所有内容(文件和文件夹)复制到指定路径
- java读写文件-经过多方搜索整合成我需要的功能(读写指定文件夹下面的多个指定名称的txt中的内容全部写入到一个指定的txt中)
- 把一个文件夹下的文件先打包成一个tar文件,然后再用gzip压缩。
- 同样大小的文件,一个是压缩文件,一个是文件夹,为什么传送到U盘的速度有如此大的区别?
- java web 实现把文件夹下的所有文件压缩成zip并实现下载(原文链接)http://blog.csdn.net/sxdtzhaoxinguo/article/details/20550537)
- 将文件夹下的多个文件的内容合并到一个文件中
- 压缩文件夹文件到一个压缩包里面
- 一个简单的利用ini配置文件以及用户输入的交互进行文件夹内容拷贝的批处理文件脚本的实现