首页 > 代码库 > 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文件下载