如何从存储中访问图像

How to access image from storage

我在 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

访问

这个 return 文件路径(没有 url)(如果你看到日志它说 /var/www...等等)

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

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

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

在此之前,您需要运行此命令从public文件夹创建符号link到存储文件夹。

php artisan storage:link

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

首先,运行这个命令:

php artisan storage:link

然后在任何视图中,您都可以在 url 助手的帮助下访问您的图像。

url('storage/app/uploads');

尝试将图像保存在 public 文件夹中而不是存储 它很简单,您可以使用 public_path() 函数访问它。