方法一:
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);