在浏览器中显示不在 Web 目录中且不可链接的文件
Show files in browser that are not in web directory and not linkable
我们正在使用 Laravel v.5.8 并将我们的 public 文件放在类似...
的目录中
/www/public/pubfiles/myfile.php
我可以 link 毫无问题地处理这些。我们还有一个上传脚本,通过设计将文件放在...
/uploads/nonlinkablefile
然后将路径和文件名等存储在数据库中。当有人单击 link 来检索这些文件时,脚本会获取文件并 returns 下载。
第二个选项中的文件以这种方式存储,因此无法link编辑或共享。我们能够检查用户在页面上或直接在文件上的权限,以查看他们是否应该能够下载。
我现在想知道的是,我们是否可以进行这些检查,然后以某种方式在浏览器的新选项卡中显示文件(大部分为 PDF),而不是强制下载。
由于该文件没有启用网络的路径,因此我找不到这样做的方法。
谢谢。
您可以尝试使用 file()
功能,而不是下载请求浏览器打开文件,即:
return response()->file('/uploads/nonlinkablefile.pdf');
您可以在 official documentation 中找到更多信息。
显然文件存放的路径应该是web服务器可以访问的,但是文件不需要在public
或DocumentRoot
目录下。
我们正在使用 Laravel v.5.8 并将我们的 public 文件放在类似...
的目录中/www/public/pubfiles/myfile.php
我可以 link 毫无问题地处理这些。我们还有一个上传脚本,通过设计将文件放在...
/uploads/nonlinkablefile
然后将路径和文件名等存储在数据库中。当有人单击 link 来检索这些文件时,脚本会获取文件并 returns 下载。
第二个选项中的文件以这种方式存储,因此无法link编辑或共享。我们能够检查用户在页面上或直接在文件上的权限,以查看他们是否应该能够下载。
我现在想知道的是,我们是否可以进行这些检查,然后以某种方式在浏览器的新选项卡中显示文件(大部分为 PDF),而不是强制下载。
由于该文件没有启用网络的路径,因此我找不到这样做的方法。
谢谢。
您可以尝试使用 file()
功能,而不是下载请求浏览器打开文件,即:
return response()->file('/uploads/nonlinkablefile.pdf');
您可以在 official documentation 中找到更多信息。
显然文件存放的路径应该是web服务器可以访问的,但是文件不需要在public
或DocumentRoot
目录下。