您当前的位置: 站长圈 > 技术文章 > 后端教程 > PHP文件下载函数(代码)

PHP文件下载函数(代码)

来源: 作者:adminzzq 点击: 0

php实现文件下载的函数,具体函数代码如下:

function download($file_url,$new_name=''){
 if(!isset($file_url)||trim($file_url)==''){
 return '500';
 }
 if(!file_exists($file_url)){ 
//检查文件是否存在
 return '404';
 }
 $file_name=basename($file_url);
 $file_type=explode('.',$file_url);
 $file_type=$file_type[count($file_type)-1];
 $file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type;
 $file_type=fopen($file_url,'r');
 //打开文件
 //输入文件标签	header("Content-type: application/octet-stream");
 header("Accept-Ranges: bytes");
 header("Accept-Length: ".filesize($file_url));
 header("Content-Disposition: attachment; filename=".$file_name);
 //输出文件内容
 echo fread($file_type,filesize($file_url));
 fclose($file_type);
}

注意以上检查文件是否存在是通过file_exists这个函数的,但这个函数只能检查相对于当前服务器网站目录里面的文件,如果是互联网上的远程文件,可以通过本站如下这篇文章:

php判断远程文件是否存在的办法

来检查文件是否存在。

注:以上函数代码存在bug,解决方案可参照本站文章:

php 用header()实现文件下载,下载的文件提示被破坏不能打开的解决办法