php实现文件下载的一段代码

    $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 $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);

你可能感兴趣的:(php实现文件下载的一段代码)