欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > 其他教程 >
其他教程

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

(元素模板) / 2023-01-05 21:19

前言

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

研究了很久,发现网上的分享的代码,缺少很多参数,整理分享一篇完整的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的服务器可低速下载不失败。

//限速
$downlo ad_rate=202400;
//防止GZIP压缩
header('Cac he-Control: no-transform');
//请求类型
header('Con tent-Type:application/octet-stream');
//下载文件名称
header('Cont ent-Disposition: attachment; filename="'.$filename.'";filename*=utf-8'."''".$filename.".".$ext);
//开始下载
header('X-A ccel-Redirect: '.$downurl);
header('X-S endfile: '.$downurl);
header("X-Ac cel-Buffering: yes");
header('X-Ac cel-Limit-Rate: '.$download_rate);
header("Acce pt-Ranges: none");

$filename为文件名称

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

$downurl为下载文件地址

$download_rate为限速多少B

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

Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com