搜索您想要的文章


完整的X-Accel-Redirect限速下载大文件方案

作者:Admin采集插件 时间:2023-04-08 浏览:55 分类:php教程 来源:互联网收录

前言

网上搜索X-Accel-Redirect限速下载都是千篇一律的教程,如果按照网上的教程开发,下载大文件时,CMS自动采集测试还是下载一半会失败。

CMS自动采集研究了很久,发现网上的分享的代码,缺少很多参数,整理分享一篇完整的X-Accel-Redirect大文件下载方案。

准备工作

在写代码前,你需要修改环境配置,否则大文件下载 低配服务器下载一半会失败。

1、修改php上传限制,比如:宝塔->软件商店->已安装~>PHP->.上传限制->修改为10240->保存

2、修改PHP超时限制,比如:宝塔->软件商店->已安装->PHP->超时限制->修改为3600->保存

3、修改nginx上传限制,比如:宝塔->软件商店->己安装~>Nginx->性能调整->修改连接超时世间为3600-->保存

4、修改Nginx超时限制,比如:宝塔->软件商店->己安装~>Nginx->性能调整->修改最大上传文件为10240->保存

5、最后重启PHP和重启Nginx,最好是重启服务器最保险。

X-Accel-Redirect示例

然后就是完整的X-Accel-Redirect下载代码示例了,已测试,完美无错,1G1H的服务器可低速下载不失败。

//限速
$download_rate=202400;
//防止GZIP压缩
header('Cache-Control: no-transform');
//请求类型
header('Content-Type:application/octet-stream');
//下载文件名称
header('Content-Disposition: attachment; filename="'.$filename.'";filename*=utf-8'."''".$filename.".".$ext);
//开始下载
header('X-Accel-Redirect: '.$downurl);
header('X-Sendfile: '.$downurl);
header("X-Accel-Buffering: yes");
header('X-Accel-Limit-Rate: '.$download_rate);
header("Accept-Ranges: none");

$filename为文件名称

$ext为文件后缀,也可以不要

$downurl为下载文件地址

$download_rate为限速多少B

以上变量自己读取自己的数据即可。

本文章来自互联网,有问题请联系QQ:1739635


免责声明:1.凡本站注明“来源:XXX(非CMS自动采集助手)”的作品,均转载自其它媒体,所载的文章、图片、音频视频文件等资料的版权归版权所有人所有,如有侵权,请联系1321198484@qq.com处理;2.凡本站转载内容仅代表作者本人观点,与CMS自动采集助手无关。