php zip压缩文件及下载
2008-07-17 16:06
435 查看
方法一:
require_once('zip.lib.php');
// クラス作成
$zipfile = new zipfile();
// ファイル1を圧縮する
if(!empty($filename_1) and is_file($filepath.$filename_1)) {
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filepath.$filename_1, "rb");
$contents = fread($handle, filesize($filepath.$filename_1));
fclose($handle);
// 追加
$zipfile->addFile( $contents, $filename_1 );
}
// ファイル2を圧縮する,ファイルをバイナリで読んで、変数にセット
if(!empty($filename_2) and is_file($filepath.$filename_2)) {
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filepath.$filename_2, "rb");
$contents = fread($handle, filesize($filepath.$filename_2));
fclose($handle);
// 追加
$zipfile->addFile( $contents, $filename_2 );
}
// ファイル3を圧縮する,ファイルをバイナリで読んで、変数にセット
if(!empty($filename_3) and is_file($filepath.$filename_3)) {
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filepath.$filename_3, "rb");
$contents = fread($handle, filesize($filepath.$filename_3));
fclose($handle);
// 追加
$zipfile->addFile( $contents, $filename_3 );
}
// zip をバイナリで変数にセット
$zip_buffer = $zipfile->file();
// ファイルに変数から書き込む
$handle = fopen("download.zip", "wb");
fwrite($handle, $zip_buffer );
fclose($handle);
// ダウンロード
//header("Content-Type:text/html; charset=shift-jis");
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename=download.zip');
header('Content-Length: '.filesize('download.zip'));
readfile('download.zip');
方法二:
require_once 'File/Archive.php';
File_Archive::extract(
File_Archive::read(array(
$filepath.$filename_1,
$filepath.$filename_2,
$filepath.$filename_3
)),
File_Archive::toArchive($id . '.zip', File_Archive::toOutput())
);
备注:这个方法起初用错了,
File_Archive::extract(
File_Archive::read($dir),
File_Archive::toArchive($fileName, File_Archive::toOutput())
);
$dir:圧縮するディレクトリ名
$fileName:ダウンロードファイル名(tar, gz, bz2, tgz, tbz, zipが可能)
File_Archive::toOutput():圧縮したファイルをダウンロードする。
若使用File_Archive::toFiles(),则是把压缩文件保存至server再下载!
方法三:
普通文件下载:
require_once('zip.lib.php');
// クラス作成
$zipfile = new zipfile();
// ファイル1を圧縮する
if(!empty($filename_1) and is_file($filepath.$filename_1)) {
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filepath.$filename_1, "rb");
$contents = fread($handle, filesize($filepath.$filename_1));
fclose($handle);
// 追加
$zipfile->addFile( $contents, $filename_1 );
}
// ファイル2を圧縮する,ファイルをバイナリで読んで、変数にセット
if(!empty($filename_2) and is_file($filepath.$filename_2)) {
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filepath.$filename_2, "rb");
$contents = fread($handle, filesize($filepath.$filename_2));
fclose($handle);
// 追加
$zipfile->addFile( $contents, $filename_2 );
}
// ファイル3を圧縮する,ファイルをバイナリで読んで、変数にセット
if(!empty($filename_3) and is_file($filepath.$filename_3)) {
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filepath.$filename_3, "rb");
$contents = fread($handle, filesize($filepath.$filename_3));
fclose($handle);
// 追加
$zipfile->addFile( $contents, $filename_3 );
}
// zip をバイナリで変数にセット
$zip_buffer = $zipfile->file();
// ファイルに変数から書き込む
$handle = fopen("download.zip", "wb");
fwrite($handle, $zip_buffer );
fclose($handle);
// ダウンロード
//header("Content-Type:text/html; charset=shift-jis");
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename=download.zip');
header('Content-Length: '.filesize('download.zip'));
readfile('download.zip');
方法二:
require_once 'File/Archive.php';
File_Archive::extract(
File_Archive::read(array(
$filepath.$filename_1,
$filepath.$filename_2,
$filepath.$filename_3
)),
File_Archive::toArchive($id . '.zip', File_Archive::toOutput())
);
备注:这个方法起初用错了,
File_Archive::extract(
File_Archive::read($dir),
File_Archive::toArchive($fileName, File_Archive::toOutput())
);
$dir:圧縮するディレクトリ名
$fileName:ダウンロードファイル名(tar, gz, bz2, tgz, tbz, zipが可能)
File_Archive::toOutput():圧縮したファイルをダウンロードする。
若使用File_Archive::toFiles(),则是把压缩文件保存至server再下载!
方法三:
普通文件下载:
$fp=fopen($filename,'r'); $Content=fread($fp,filesize($filename));fclose($fp); header ("Content-type:".$result_file[0][c_filetype]); header ("Content-Disposition: attachment; filename=".$result_file[0][c_filename] ); echo $Content; 或: // CSVファイルをダウンロードする header("Content-Type: application/x-csv"); header("Content-Disposition:attachment; filename=online_entry.csv"); //$fpExp = fopen( 'export.csv', 'r'); header('Content-Length: '.filesize('../'.CSVpath)); readfile('../'.CSVpath);
相关文章推荐
- PHP网页上打包文件生成压缩文件zip,并弹出下载
- php 压缩服务器上的文件为zip 和下载zip文件
- php 将多个文件压缩成zip并下载到本地
- JasperPrint 生成包含.XLSX的ZIP压缩文件下载
- php实现网站文件批量压缩下载功能
- php压缩下载文件处理
- PHP 压缩文件成zip的函数
- 文件下载时直接对流进行zip加密压缩
- PHP压缩文件到zip
- 文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
- php实现zip压缩文件解压缩代码分享(简单易懂)
- 文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
- PHP 压缩单个或多个文件成ZIP 函数(修复)
- PHP 压缩单个或多个文件成ZIP 函数(修复)
- Struts2下载zip压缩文件-不生成临时文件
- php创建zip压缩文件
- asp.net 文件压缩zip下载
- Java打包下载ZIP压缩文件
- PHP zip压缩文件及解压
- 解压ZIP压缩文件(PHP代码函数)