php提供下载服务实例

两个步骤:1,通过header头信息告诉浏览器,我给你回应的是一个附件请接收

    2,通过php读取下载的文件的内容并返回

     

 

前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="dowload.php">下载</a>
</body>
</html>

后端

<?php
/**
 * Created by PhpStorm.
 * User: 小辛
 * Date: 2019/1/24
 * Time: 16:29
 */

//文件名
$file_name = 'phpStudySetu1p.exe';
//文件路径
$full_path = 'img/'.$file_name ;
//如果有该文件(找到了)
if(file_exists($full_path)){
    //文件大小
    $filesize = filesize($full_path);
    //告诉浏览器,回应的是字节流
    header("Content-Type:octet/stream");
    //单位是字节
    header("Accept-Range:bytes");
    //内容长度多少
    header("Content-Length:$filesize");
    //告诉浏览器回应的文件名称是什么
    header("Content-Disposition:attchment;filename=$file_name");

    //读取文件
    $file = fopen($full_path,'r');
    //向客户端回送数据
    $buffer=1024;//
    //判断文件是否读完
    while (!feof($file)) {
        //将文件读入内存
        $file_data=fread($file,$buffer);
        //每次向客户端回送1024个字节的数据
        echo $file_data;
    }
    fclose($file);



}else{
    //返回相应的错误头消息,避免跳转
}

 

posted @ 2019-01-24 17:24  cl94  阅读(495)  评论(0编辑  收藏  举报