首页 > 代码库 > php文件下载
php文件下载
近些日子,老被这个文件下载所苦恼,搞了几天,终于解决,特此把过程详解于下:
1.在下载文件之前,首先应当判断文件是否存在;
2.当文件存在的情况下,设置文件文件输出的格式,需要四项设置,分别如下:
header("content-type:image/jpg"); //设置下载文件类型,这里假设下载的文件jpg文件
header("Accept-Ranges:bytes"); //告诉客户端浏览器返回的文件大小是按照字节进行计算的
header("Accept-Length:".filesize("$filePath")); // 告诉浏览器返回的文件大小,$filePath表示要下载的文件的路径
header(‘content-disposition:attachment;filename=1.jpg‘); //说明输出的是一个附件同时告诉文件名称,切记filename后面只能用相对路径或者直接使用文件名称,不能使用变量代替,否则会出错
3.读取要下载的文件:例如用readfile()函数读取上面的图片文件,或者写一个循环语句按照一定的程序读取;
例如代码:
<?php
//下载文件成功解决
header("content-type:text/html;charset=utf-8");
$filePath = "image/1.jpg"; //这里设置下载的文件路径
if(file_exists($filePath)){
//设置文件下载需要的头
header("content-type:image/jpg");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize("$filePath"));
header(‘content-disposition:attachment;filename=1.jpg‘); //但是这里filename后面只能使用文件名
//readfile("image/1.jpg"); 或者用下面的方式
$fopen = fopen($filePath,"rb");
$buffer = 1024;
$fcon =0;
while(!feof($fopen) and $fcon <= filesize("$filePath")){
$fileCon = fread($fopen,$buffer);
$fcon += $buffer;
echo $fileCon;
}
fclose($fopen);
}
else echo "您要下载的文件不存在";
?>
php文件下载