首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP

tp5实现文件下载,并对下载的文件重命名

作者:小萝卜 2019-07-24 浏览 3734

简介tp5实现文件下载,并对下载的文件重命名,通过php的header函数来实现此项操作

tp5实现文件下载,并对下载的文件重命名

        $id = request()->param('id');
        $data = db('article')->where('id=:id',['id'=>$id])->field('title,down')->find();
        $ext = strrchr($data['down'],'.'); //获取文件后缀名

        $data['down'] = str_replace('/',DS,$data['down']);
        
        $files = ROOT_PATH.$data['down'];
        if(!file_exists($files)){
            echo '未找到文件';
            exit;
        }else{
            $file1 = fopen($files,'r');
            //告诉浏览器这是一个文件流格式的文件    
            Header ( "Content-type: application/octet-stream" ); 
            //请求范围的度量单位  
            Header ( "Accept-Ranges: bytes" );  
            //Content-Length是指定包含于请求或响应中数据的字节长度    
            Header ( "Accept-Length: " . filesize ( $files ) );  
            //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
            Header ( "Content-Disposition: attachment; filename=" . $data['title'].$ext );

            ob_clean();  //清除缓存
            flush(); // 可清除文件多余的路径名称 解决乱码的问题

            echo fread($file1,filesize($files));  //读取文件内容并输出到浏览器
            fclose();
            exit;
        }


很赞哦! (0)

文章评论

    高端网站建设