首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
tp5实现文件下载,并对下载的文件重命名
作者:小萝卜 2019-07-24 【 PHP TP5 】 浏览 4577
简介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视图和模板
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Attr_id' in 'where clause'
- tp6定义模板常量__PUBLIC__,__STATIC__
- TP5 databackup拓展插件,实现数据库备份下载还原代码分享
- Tp6 $request->isAjax()不能验证axios提交的请求
- PayPal支付ThinkPHP3.2源代码
- TP5.1微信小程序支付功能服务器端代码分享
- TP6文件上传详解
- TP6定义常量报错:Use of undefined constant CONTROLLER_NAME - assumed 'CONTROLLER_NAME'
- tp5动态创建mysql数据表