PHP文件下载
// 1. 文件路径
file_name = 'basa.jpg'; //文件名
$file_dir = '' //路径
// 2. 判断文件是否存在
if(!file_exits($file_dir.$file_name)){
echo '文件找不到';
exit;
}else{
//3. 打开文件
$file = fopen($file_dir,"r");
//4. 声明下载文件,请求头的设置
header("Content-type:application/octet-stream"); // 文件类型
header("Accept-Ranges:bytes");//可以理解为请求范围的度量单位
header("Accept-Length: ".filesize($file_dir.$fil_name));//表示接收的文件大小
header("Content-Disposition: attachment;filename=".$filename);//这个名称就是下载时显示的文件名称
//5.输出文件内容
echo fread($file,filesize($file_dir.$file_name));
exit();
}
方法介绍
resource fopen(string $filename, string $mode)
作用:
打开文件或者URL,将filename指定的名字资源绑定到一个流上。
参数介绍:
filename资源可以是本地,也可以是网络。
$mode 所要求到该流的访问类型 “r”:只读 将文件指针指向文件头,”r+”读写 将文件指针指向文件头 …等等;
string fread(resouce $handle,int $length)
作用:
读取文件,从文件的指针handle读取最多lengyh个字节。直到遇到以下两种情况读取停止
1.读取了length字节
2.文件结束
注意
- file_exits() 方法只能判断本地文件是否存在,若需要判断网络文件,可采用fopen()判断。该函数若打开成功会返回资源流,失败会返回false。
if(!fopen("http://****","r")){
echo '文件不存在';
}else{
//文件存在
...
}