当前位置: 首页 > 面试题库 >

如何在Laravel 5中使用Storage Facade获取文件路径?

宓英哲
2023-03-14
问题内容

我一直在尝试将新的Flysystem与Laravel 5集成在一起。我正在将“本地化”路径存储到数据库,并让Storage
Facade来完成路径。例如我存储screenshots/1.jpg和使用

Storage::disk('local')->get('screenshots/1.jpg')

要么

Storage::disk('s3')->get('screenshots/1.jpg')

我可以在不同的磁盘上检索相同的文件。

get 检索文件内容,但是我希望在这样的视图中使用它:

<img src="{{ Storage::path('screenshots/1.jpg') }}" />

但是路径,或者任何能够检索完整路径的东西都不可用(据我所知)。那么如何返回完整路径?或者,我想知道这是否是设计使然?如果是这样,为什么我不应该获得完整的路径?还是我完全以错误的方式来做这件事?


问题答案:

编辑:L5.2 +的解决方案

有一个更好,更直接的解决方案。

使用Storage::url($filename)得到给定文件的完整路径/
URL。请注意,您需要在中将设置S3为存储文件系统config/filesystems.php'default' => 's3'

当然,您也可以Storage::disk('s3')->url($filename)以相同的方式进行操作。

如您所见,config/filesystems.php还有一个'cloud' => 's3'定义的参数,它指向Cloud文件系统。如果您想保留本地服务器中的存储文件夹,但在云使用中检索/存储一些文件,该文件Storage::cloud()也具有相同的文件系统方法,即Storage::cloud()->url($filename)

Laravel文档没有提到此方法,但是如果您想了解更多有关此方法的信息,可以在此处查看其源代码。



 类似资料:
  • 问题内容: 我的swing应用程序中有一个JTextField,它保存选定要使用的文件的文件路径。目前,我有一个JFileChooser,用于填充此值。但是,我想为用户添加将文件拖放到此JTextField上的功能,而不是始终使用JFileChooser来将其放置在JTextField中。 如何才能做到这一点? 问题答案: 首先,您应该研究Swing DragDrop支持 。在那之后,针对不同操作

  • 我想从SD卡文件路径中获取文件名。e、 g.:/storage/sdcard0/DCIM/Camera/1414240995236。jpg我想得到1414240995236。jpg我已经编写了获取相同内容的代码,但它不起作用。请帮忙<下面是我的代码:

  • 问题内容: 给定路径,例如,我如何找到相对于Python中当前工作目录的文件的绝对路径?例如在Windows上,我可能会得到以下结果: 问题答案: 如果已经是绝对路径,也可以使用:

  • 问题内容: 给定Python中的类C,如何确定该类在哪个文件中定义?我需要可以从类C或从关闭C的实例工作的东西。 我这样做的原因是因为我通常不喜欢将属于同一文件的文件放在同一文件夹中。我想创建一个使用Django模板将其自身呈现为HTML的类。基本实现应根据定义类的文件名来推断模板的文件名。 假设我在文件“ base / artifacts.py”中放置了一个LocationArtifact类,那

  • 我正试图在我的Android应用程序中导入sky.csv文件。 请帮我做这个。我试过这么多方法。然而,我没有得到任何适当的解决办法。

  • 问题内容: 有没有办法从完整路径中获取最后一个值(基于’'符号)? 例: 在这种情况下,我只想了解JavaScript的完整路径。 问题答案: 这将处理路径中的\ OR /