首页 > 解决方案 > 如何从存储中访问图像

问题描述

我有一个文件保存在 storage/app/uploads 中,我想保存这张图片并用 img src 标签显示。

但我不能

我在尝试:

public function getSlider(Request $request)
    {
        $slider = Slider::find( $request->input('id') );    
        $slider->imagem = storage_path('storage/app/uploads/'.$slider->imagem);

        return response()->json( $slider );
    }

我正在尝试用 jquery 和 javascript 显示

function getSliders() {
        $.ajaxSetup({
            headers: {'X-CSRF-TOKEN' : $('#token').val() }
        })
        $.ajax({
          url: "{{ route('site.getSlider') }}",
          type: "post",
          dataType: "json",
          data: {
            id: $('#id').val()
          }
        }).done( r  => {
             console.log('r',r)
             $('#description').val( r.description )
             setImage( r.image )
        })
    }

并设置图像

function setImage( image ){
    var newImage = document.createElement('img');
    newImage.setAttribute('src', image);        
    newImage.width = 500;
    newImage.heigth = 200;
    document.getElementById("photo").innerHTML = newImage.outerHTML;
}

当我想从 public/img 访问图像时,我使用

<img src="{{ URL('img/myImage.png') }}">

但我想从 storage/app/uploads 访问

年龄

标签: laravelstorage

解决方案


这将返回文件路径(无 url)(如果您看到它显示 /var/www.... 等的日志)

storage_path('storage/app/uploads/'.$slider->imagem);

您应该使用资产助手来创建图像的 URL

asset( 'storage/app/uploads/'.$slider->imagem);

在此之前,您需要运行此命令以从公用文件夹创建指向存储文件夹的符号链接。

php artisan storage:link

请试试这个,让我知道它是如何工作的:)


推荐阅读