首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
tp5实现文件下载,并对下载的文件重命名
作者:小萝卜 2019-07-24 【 PHP TP5 】 浏览 5013
简介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使用redis操作报错Store [redis] not found.
- TP6 Validate内置验证规则总览
- TP5 添加平铺水印并设置水印之间的间距
- tp5 报错variable type error: array怎么解决
- TP6/ThinPHP 修改错误级别
- TP3.2同时操作多个数据库
- tp5 致命错误: Class 'think\route' not found
- TP6批量打包下载文件图片
- TP6实现前后端分离的图片验证码,验证码怎么以接口形式返回
- TP6阿里云OSS上传报SSL certificate problem:unable to get local issuer certificate