首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
tp5实现文件下载,并对下载的文件重命名
作者:小萝卜 2019-07-24 【 PHP TP5 】 浏览 4376
简介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)
相关文章
- TP6/ThinkPHP6修改Session存活时间
- ThinkPHP集成QueryList和PhantomJS插件实现采集动态加载的页面的数据
- tp5.0使用think-queue+redis实现消息队列简易教程
- TP5/TP6按驼峰命名了控制器和方法,运行时报错找不到模板文件
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Attr_id' in 'where clause'
- tp5/tp6新增app版本跟新接口
- TP6图片上传怎么验证图片的大小和类型?
- TP6/Mysql源生查询当前月每天的数据统计
- TP6使用Jwt验证token时报错Cannot pass parameter 3 by reference
- TP5数据库操作时怎么过略不存在的字段