php大文件下載,使用apache/nginx x-sendFile模塊替換
php下載文件是通常使用readfile函數讀取文件進行下載,在遇到大文件下載的時候,往往不太適用,效率不怎麼樣。
使用x-sendfile模塊則可以繞過php讀取文件的方式了,直接設置頭部信息就可以,利用服務器將文件發送到客戶端進行下載
x-sendfile模塊
apache服務器的配置
設置xsendfile模塊打開
<Directory> XSendFile On </Directory>
php測試代碼
header("X-Sendfile: $path_to_somefile"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$somefile\"");
ngnix服務器的配置
location /protected/ {internal;root /some/path; //下載文件的目標路徑 }
如果需要重定向則
X-Accel-Redirect: /protected/iso.img;
php測試代碼如下
header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $basefilename); header('X-Accel-Redirect: ' . UPLOAD_PATH . $filename);
转载于:https://www.cnblogs.com/timily/p/3929748.html
php大文件下載,使用apache/nginx x-sendFile模塊替換相关推荐
- ABP框架下文件下載
ABP框架下添加DevExpress框架生成報表,記錄一下學習過程 方式1,原始方式大概思路,打開Controller的方法CreateInRecordReport創建一個本地臨時文件,返回文件名,再 ...
- SpringBoot 之 PDF大文件分片加载(后端)
业务需求:前端集成pdf.js 实现在线阅读pdf 文件,但pdf 文件过大时(大于100M)会出现浏览器内存溢出导出程序崩溃的场景发生.针对这个情况,后端给出的解决方案是:分片加载pdf 文件流. ...
- 关于linux磁盘爆满定位大文件的方法
在linux较长时间运行中,往往会过短时间磁盘使用率达到98%以上,此时,如何定位占用空间较大文件的位置呢?下面将逐步排查: 1. df -h 此时看到/dev/vdal的占用率已经100%,严重爆满 ...
- Linux运维实战|大文件切割
介绍 日常工作中需要对日志文件进行分析,当日志文件过大时,Linux中使用vim.cat.vim.grep.awk等这些工具对大文件日志进行分析将会成为梦魇,具体表现在: 执行速度缓慢,文件内容需要加 ...
- 文件传输请求最快的方式_实施块请求并更快地上传大文件30
文件传输请求最快的方式 Our test shows that the implementation of the chunked requests makes the upload 30% fast ...
- linux apache 大文件,Apache下error.log文件太大的处理方法
Apache下error.log文件太大的处理方法 2019年05月03日 | 萬仟网网络运营 | 我要评论 清除error.log.access.log并限制apache日志文件大小的方法 有个客户 ...
- centos查看盘符_Centos下磁盘管理的常用命令记录(如查找大文件)
Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...
- php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例
科技常识:apache+php上传大文件以上传100M为例 2021-03-19 18:54:57 今天小编跟大家讲解下有关apache+php上传大文件以上传100M为例 ,相信小伙伴们对这个话题应 ...
- Mac下使用docker下载nginx并挂载文件
Mac下使用docker下载nginx并挂载文件. 也发到另外csdn:https://blog.csdn.net/zenkin/article/details/108612594 一.docker ...
最新文章
- DD来拜年送红包啦!
- 利用iframe与Response.Flush实现进度展示效果
- 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)
- TensorFlow学习笔记(十四)TensorFLow 用mnist数据做classification
- java通过poi读取excel中的日期类型数据或自定义类型日期
- 进程的创建与可执行程序的加载
- C++(STL):03---智能指针之shared_ptr
- Promise 最完整介绍与实现解密
- Intel Edison学习笔记(二)—— 入门环境配置
- 【遥感微课堂】学习ENVI5.0
- 惠普m128fn中文说明书_惠普M128fw使用说明书
- 11年艺术学习“转投”数学,他出版首本TensorFlow中文教材,成为蚂蚁金服技术大军一员...
- dota2自走棋Android怎么更新,dota2自走棋
- perfmon 端口修改_Windows操作统的性能监控工具――Perfmon.doc
- linux 运行QQ /Tim(超简单)
- 按Backspace键删除时,会出现^H
- 如何基于微信开放接口开发企业的微信CRM
- insmod 和 modprobe使用方法
- 原生JS实现拿到的时间戳“毫秒/秒”转为“时:分:秒”形式的效果
- This means it will render an <Outlet /> with a null value by default resulting in an “empty“ page.
热门文章
- redis debug命令详解
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
- 次债危机:全世界陪着美国等死
- Visual Studio 剪切板新特性
- Vue中$nextTick的理解
- java 无锁框架_高性能无锁并发框架 Disruptor,太强了!
- Unity 3D Hierarchy视图
- linux桌面xfce美化_Xfce Linux桌面环境,Arduino机器人,热门DevOps书籍,FreeDOS,Python,Go等
- 开源游戏引擎_Hatchit:开源游戏引擎
- unity gizmo_GitLab的新功能,沃尔玛的OneOps,《纽约时报》的Gizmo以及更多新闻