$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 框架下批量下载文件
boolZipArchive::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);