您的位置:首页 > 编程语言 > PHP开发

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再下载!

方法三:
普通文件下载:
$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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: