无法从存储Laravel 5获取图像

玛丽班

嘿,所以我想将我的图像放到索引上的幻灯片中。图像保存在storage/app,然后从数据库中检索其余路径。

我设法在<img src>标签上输出了正确的路径,标题得到了应有的输出,但是图像却没有。

我从控制器发送和数组,然后在我的视图中循环遍历它:

控制器:

public function index()
{
    $projects = Project::all()->take(4);
    return view('index' , compact('projects'));

}

索引检视

@foreach($projects as $project)
{{$storagePath  = Storage::disk('local')->getDriver()->getAdapter()->getPathPrefix()}}
<li><img src="{{$storagePath.$project->fetchMedia->first()->public_name}}"    title=" {{$project->name}}"></li>
        @endforeach

HTML输出是正确的路径:“ / home / vagrant / project / storage / app / projects / Domaa6.jpg”

但它不显示图像。

我已经尝试使用HTML :: image帮助器,但也没有成功。

有没有办法让它按原样工作,还是我需要创建一个新的控制器来操作我的图像?

fetchMedia是模型上返回我的媒体的函数。

public function fetchMedia()
{
    return $this->hasMany('App\Media');
}
埃梅卡·姆巴(Emeka Mbah)

您试图做的事在存储目录中是不可能的,但仅在公共目录中是可能的,而且暴露laravel存储目录的路径或URL会造成一些漏洞及其不良做法

但是,有一种解决方法:

首先,您需要一个Image包来在引用特定路由时动态生成图像,我建议您采用干预/图像处理/图像处理方法,该方法具有许多使图像管理变得轻而易举的方法。

为此,请执行以下步骤:

1.安装干预映像:

将干预图像添加到您的composer.json和 composer update

"require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "intervention/image": "2.*",
        "intervention/imagecache": "2.*"

        .....

在$ providers数组中,添加此程序包的服务提供者。

'Intervention\Image\ImageServiceProvider'

将此包的外观添加到$ aliases数组中。

'Image' => 'Intervention\Image\Facades\Image'

在Laravel 5中配置干预图像

$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

在Laravel 4中发布配置

$ php artisan config:publish intervention/image

有关更多安装详细信息,参见https://github.com/Intervention/image

安装干预/图像后,您可以执行以下操作:

Image::make($path=storage_path('stock-photos/image1.jpg'));

2.设置将处理图像请求的路由

Route::get('stock-photos/{image}', function($image){

    //do so other checks here if you wish

    if(!File::exists( $image=storage_path("stock-photos/{$image}") )) abort(404);

    return Image::make($image)->response('jpg'); //will ensure a jpg is always returned
});

3.然后在视图后面可以执行以下操作:

@foreach($projects as $project)
    <li>
        <img src="{{url('stock-photos/'. $project->fetchMedia->first()->public_name)}}" title="{{$project->name}}">
    </li>
@endforeach

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法从Laravel 5.8中的存储中检索图像

来自分类Dev

Laravel 7-无法正确获取存储映像路径

来自分类Dev

Laravel:无法从本地/ app获取图像

来自分类Dev

无法写入图像数据laravel 5干预

来自分类Dev

无法在Firebase存储上获取上载图像的URL

来自分类Dev

从 Laravel 5.4 中的存储路径获取图像时出错

来自分类Dev

无法获取图像的宽度

来自分类Dev

无法从文件获取图像

来自分类Dev

无法获取Laravel注册表格来存储带哈希的密码

来自分类Dev

在SWIFT 5中点击时无法获取UIImage systemName图像进行更改

来自分类Dev

验证图像laravel 5

来自分类Dev

从文件存储获取图像[无尽]

来自分类Dev

无法获取要存储在html页面上的图像url(存储为文件)

来自分类Dev

无法上传图像laravel

来自分类Dev

我无法从PFFile获取图像

来自分类Dev

Android | 无法从图库获取图像

来自分类Dev

无法使用xpath获取图像

来自分类Dev

无法获取图像以Java显示

来自分类Dev

无法从链接获取图像

来自分类Dev

无法从功能获取图像URL

来自分类Dev

Android | 无法从图库获取图像

来自分类Dev

无法从 EXIF 获取图像方向

来自分类Dev

Laravel 5存储库注入

来自分类Dev

Laravel 5模板存储目录

来自分类Dev

Laravel 5存储过程错误

来自分类Dev

Laravel 5的存储库模式

来自分类Dev

Laravel 5存储库注入

来自分类Dev

能够将图像上传到Dropbox,但无法在数据库上获取和存储图像URL

来自分类Dev

能够将图像上传到Dropbox,但无法在数据库上获取和存储图像URL