php実装ファイルダウンロードのコード
1913 ワード
$file_dir=$totalDirectory;
$file_name=$filename;
//echo './db/'.$file_dir.$file_name;
if (file_exists($file_dir.$file_name)){
$file=fopen($file_dir.$file_name,'r');
Header('Content-type:application/octet-stream');
Header('Accept-Ranges:bytes');
Header('Content-Disposition:attachment;filename='.$file_name);
echo fread($file,filesize($file_dir.$file_name));
fclose($file);
exit;
}else{
echo 'file is not exists';
}
yiiフレームワークの下でファイルを一括ダウンロードする
bool ZipArchive::addFile ( string
$file = fopen($filepath,"read"); $content = fread($file,filesize($filepath)); fclose($file); CHttpRequest::sendFile($filename,$content);
$file_name=$filename;
//echo './db/'.$file_dir.$file_name;
if (file_exists($file_dir.$file_name)){
$file=fopen($file_dir.$file_name,'r');
Header('Content-type:application/octet-stream');
Header('Accept-Ranges:bytes');
Header('Content-Disposition:attachment;filename='.$file_name);
echo fread($file,filesize($file_dir.$file_name));
fclose($file);
exit;
}else{
echo 'file is not exists';
}
yiiフレームワークの下でファイルを一括ダウンロードする
bool ZipArchive::addFile ( string
$filename
[, string $localname
= NULL
[, int $start
= 0 [, int $length
= 0 ]]] ) $zip = new ZipArchive();
$filename="attach_".uniqid().".zip";
$filepath="workflow_attachs/".$filename;
if ($zip->open($filepath, ZIPARCHIVE::CREATE)!==TRUE) {
exit(' , ');
}
$attachs = WorkflowAttach::model()->findAll("wid={$wid}");
foreach($attachs as $item){
$datalist[]=$item['filepath'];
}
foreach( $datalist as $key=>$val){
if(file_exists($val)){
$val = @iconv("UTF-8","GBK",$val);
$key = @iconv("UTF-8","GBK",$key); // ,
$zip->addFile($val,' ');
}
}
$zip->close();//
if( !file_exists($filepath)){
exit(" "); // , 。。。。
}
$file = fopen($filepath,"read"); $content = fread($file,filesize($filepath)); fclose($file); CHttpRequest::sendFile($filename,$content);