如何从存储中访问图像

问题描述 投票:0回答:3

我有一个文件保存在存储/应用程序/上传中,我希望这个图像保存并显示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') }}">

但我想从存储/应用/上传访问

age

laravel storage
3个回答
1
投票

尝试将您的图像保存在公共文件夹而不是存储中,只需使用public_path()函数即可访问它。


0
投票

这将返回文件路由(没有url)(如果你看到日志,它说/ var / www ....等)

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

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

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

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

php artisan storage:link

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


0
投票

首先,运行以下命令:

php artisan storage:link

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

url('storage/app/uploads');

© www.soinside.com 2019 - 2024. All rights reserved.