繁体   English   中英

显示从存储 laravel 上传的图像

[英]show an uploaded image from storage laravel

我想看看我上传到我的休息 api 上的图像。

这是我上传的文件

我试过这个代码,

public function MostrarImagenUsuario($id){
    $usuario = Usuario::find($id);
    $link = Storage::disk('public')->url('app/'.$usuario->foto);
    return response()->file($link);
}

但是当我尝试用邮递员测试它时,它向我发送了这个错误。

FileNotFoundException:文件“ http://localhost/storage/app/public/IqFviqFca7PPEXQlOK0nnBf11Yg2mXne8xzuR0wh.jpeg ”在文件中不存在

我也试过这个方法

public function MostrarImagenUsuario2($id){
    $usuario = Usuario::find($id);
    $link = Storage::get($usuario->foto);;
    return $link;
}

我得到了这个结果:

第二个结果

最后我不知道如何解决这个问题。

您的代码不起作用,因为您尝试从 laravel 中的非公共目录获取图像,所有公共资产始终存储在根公共文件夹中。 在图像的情况下,您可以存储在 storage/app/public 中,但是您想要获取图像始终使用 public/ 文件夹,并且它都与同步链接连接。

php artisan storage:link

使用此命令进行同步链接

运行此命令后 1shortcut 在您的根公用文件夹中创建。 并且您可以从根公共快捷方式中获取所有图像。

$url = Storage::url('database filed name where you store image data');

通过调用 php artisan storage:link 确保您已创建存储链接

然后你可以得到你的存储文件的 url。

$url = Storage::url('file.jpg');

在模型中像这样使用

当您获取图像属性时执行此函数

public function getImageAttribute($value)
{
    if (!$value) {
        return 'http://placehold.it/160x160';
    }

    return env("APP_URL")."/storage/phones/".$value;
}

当您从文件输入设置图像属性时执行此函数

   public function setImageAttribute($photo)
    {
        $this->attributes['Image'] = move_file($photo, 'phones');
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM