为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 通过Nginx x-sendfile实现文件鉴权下载

标签:
PHP

通过php鉴权,文件下载由 nginx 实现;
比使用php readfile() 高效;

# nginx 配置location /auth_download {
    internal; # 这个设置是必需的
    alias /data/upload; # 文件所在真实路径}
<?phpif (!isset($_GET['file'])) {    die('文件不存在');
}
$file = $_GET['file'];
$rename = isset($_GET['rename']) ? $_GET['rename'] : $file;// 模拟校验下载权限$canDownload = rand(1, 2) == 1;if ($canDownload) {
    header('Content-Type:application/octet-stream;');
    header('Content-Disposition: attachment; filename=' . $rename);
    header('X-Accel-Redirect: /auth_download/' . ltrim($file, '/'));
} else {    echo '无权限';
}

比如下载的文件为: /data/upload/1.zip,php 代码只要
header('X-Accel-Redirect: /auth_download/1.zip') 即可下载对应文件;



作者:forever_youyou
链接:https://www.jianshu.com/p/e6b6c7be15de


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消