为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Laravel 中显示另一个磁盘上的图像

如何在 Laravel 中显示另一个磁盘上的图像

PHP
开满天机 2024-01-19 17:21:48
我正在尝试在 Laravel 应用程序中显示图像。该映像来自另一个磁盘,该磁盘是 samba 共享。我按照 Laravel 文档中的配置说明进行操作,这是我的设置:文件系统.php'shop_storage' => [    'driver' => 'local',    'root' => env('SHOP_STORAGE_PATH', base_path('shop_storage')),    'dir' => [        'public' => 0777,        'private' => 0777,    ]],使用以下命令将我的 samba 共享安装到 Laravel 应用程序内的根文件夹 /shop_storage 中: sudo mount.cifs //PATH_TO_FILE_SHARE/ARMMAG ./shop_storage -o credentials=$HOME/.smbcredentials,rw,file_mode=0777,dir_mode=0777,mfsymlinks当我打开文件夹时,我正确地看到了所有文件。然后,我使用以下命令 添加了从/public/storage到的符号链接:(使用从 /home 开始的完整路径,出于隐私原因在此处删除)当我打开 时,我正确地看到指向 samba 共享的符号链接。如果我单击打开它,我会看到所有文件。我正在寻找的文件存在。/shop_storagesudo ln -s /shop_storage /public/storage/public/storage问题是当我尝试在网页中显示它时,请求返回 404。以下是我尝试过的一些操作:<img src="{{\Storage::disk('shop_storage')->url('products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}"><img src="http://localhost:8000/shop_storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png"><img src="{{asset('products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}"><img src="{{asset('storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}">我究竟做错了什么?编辑 经过一些尝试/错误,我设法使用以下语法获得不同的响应:  <img src="{{asset('storage/shop_storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}"> 现在,我收到以下错误You don't have permission to access /storage/shop_storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png on this server.我的权限设置为777,这可能是什么原因造成的?
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

为了完成这项工作,我最终所做的是将我的共享直接安装到公共/存储中,而不是使用符号链接。然后我可以使用 laravel asset helper 访问该文件:

<img src="{{asset('storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}">


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信