laravel如何实现请求图片或文件需用户验证

6 篇文章 0 订阅
3 篇文章 0 订阅

需求描述:实现访问文件需验证用户。

实现方案:

方案一:根据laravel业务中间件验证用户思路来设计,看了一些网上的设计方案,都不是我想要的。所以我思考了一下以接口形式来访问指定文件再请求接口时来验证用户

1、测试接口访问返回访问文件



    public function test(Request $request)
    {
        $fileName = $request->id;
        return response()->file(realpath(base_path('public')).'/'.$fileName);
    }

2、增加路由

Route::any('/test/{id}', 'Login\LoginController@test');       

3、测试请求public下指定文件
在这里插入图片描述

4、修改上传文件返回文件路径接口,把返回的图片请求根据路由来修改。

方案二:设置nginx对路径进行重写访问

1、配置nginx 增加重新规则

if ( $uri ~* "^/uploads/files/(.+)" ) {
          set $rightUrl $1;
          rewrite ^/(.*)$ http://xxxx:8284/admin/files/$rightUrl  last;
          #proxy_pass http://39.96.41.159:8284/admin/images
        }

注意:admin/images 走的是框架接口,接口直接返回文件或图片,接口参考一.1。其中路径中(.+)为动态参数,动态参数为$1,$1不能被直接使用所以要变量赋值,rewrite 中的last意思是完成rewrite后马上发起请求,也可以break不在执行nginx下面语句。nginx重新路由可以再不修改之前上传路径的情况下完美解决文件需要验证的问题,推荐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值