laravel禁止直接访问storage下某目录的文件

例如我在laravel项目中有这样一个文件 /storage/app/public/report/1/14.pdf,通过php artisan storage:link 命令,可以直接使用http://domain/storage/report/... 这样进行访问,但是因为这个pdf有特殊性,只能属于这个用户才能看到,比如如果我的用户id为1(对应report后的参数1),那我就能读取14.pdf。如果我用户id为2,那我就不能读取到这个文件应该怎么实现?
我可能希望能够类似于这种结果,不能使用http://domain/storage/report/... 这种直接访问文件的方法,必须通过http://domain/report/1/14 这种方式来访问pdf文件

阅读 7.3k
1 个回答

可以在report路由对应的控制器里面返回下载响应

response()->download(storage_path('app/public/report/1/14.pdf'));

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏