首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
tp5实现文件下载,并对下载的文件重命名
作者:小萝卜 2019-07-24 【 PHP TP5 】 浏览 4736
简介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)
相关文章
- tp5.0使用think-queue+redis实现消息队列简易教程
- tp5 报错variable type error: array怎么解决
- TP5数据库操作时怎么过略不存在的字段
- TP6 TP5一键生成sitemap站点地图 代码分享
- ThinkPHP3.2和5.0的区别
- TP6定义常量报错:Use of undefined constant CONTROLLER_NAME - assumed 'CONTROLLER_NAME'
- tp5判断一张数据表是否存在
- TP6阿里云OSS上传报SSL certificate problem:unable to get local issuer certificate
- TP5利用scp实现从a服务器转移文件到b服务器
- TP5.1微信小程序支付功能服务器端代码分享