在浏览器中显示不在 web 目录中且不可链接的文件
Posted
技术标签:
【中文标题】在浏览器中显示不在 web 目录中且不可链接的文件【英文标题】:Show files in browser that are not in web directory and not linkable 【发布时间】:2019-08-16 20:38:09 【问题描述】:我们正在使用 Laravel v.5.8 并将我们的公共文件放在类似...的目录中
/www/public/pubfiles/myfile.php
我可以毫无问题地链接到这些。我们还有一个上传脚本,通过设计将文件放入...
/uploads/nonlinkablefile
然后将路径和文件名等存储在db中。当有人单击链接以检索这些文件时,脚本会获取该文件并将其作为下载返回。
第二个选项中的文件以这种方式存储,因此它们无法链接或共享。我们能够检查用户在页面上或直接在文件上的权限,以查看他们是否应该能够下载。
我现在想知道的是,我们是否可以进行这些检查,然后以某种方式在浏览器的新选项卡中显示文件(大部分 PDF)而不是强制下载。
由于该文件没有支持 Web 的路径,因此我找不到这样做的方法。
谢谢。
【问题讨论】:
【参考方案1】:您可以尝试使用file()
函数,而不是下载请求浏览器打开文件,即:
return response()->file('/uploads/nonlinkablefile.pdf');
您可以在official documentation 中找到更多信息。
显然,存储文件的路径应该可以被网络服务器访问,但文件不需要位于public
或DocumentRoot
目录下。
【讨论】:
以上是关于在浏览器中显示不在 web 目录中且不可链接的文件的主要内容,如果未能解决你的问题,请参考以下文章
签出时添加到分支 dev 的文件显示在另一个分支中且未合并 Visual Studio [重复]
未包含在 JWT 中且未发送到 Web Api 的 IdentityServer4 用户声明
如何将通用链接重定向到应用商店而不在 Safari 浏览器上显示弹出窗口?
在web开发中使用了Bootstrap3框架但是Firefox无法显示Glyphicons字体图标,其他浏览器可是,应该如何设置