【问题标题】:Laravel problem with image url when transferring files from one pc to another将文件从一台电脑传输到另一台电脑时,图像网址的 Laravel 问题
【发布时间】:2020-06-12 17:23:34
【问题描述】:

我们与另一个人在 Laravel 中开发了一个项目,当那个人将它发送给我时,图像没有显示,如果图像存储在项目的文件夹中并且数据库中的 url 是正确的,当我再次发送项目也有同样的问题。

php artisan storage:link

表示路由已创建。

这是将图像保存在项目中的文件夹和数据库中的 url 的代码,效果很好 控制器:

   public function store(Request $request)
    {   
        $dataCard=request()->except('_token');

        if($request->hasFile('card_img')){
            $dataCard['card_img']=$request->file('card_img')->store('cards-Img','public');
        }
        carta::insert($dataCard);
        return redirect('cards');

    }

他的图片网址是这样保存的: 卡片-Img/H0mopUhgWQTn0N25jx5UZJjBvevP74by4kXbIwvI.jpeg

我显示图像的视图不显示图像,但确实从数据库中加载了 alt 中的名称

@extends('layouts.app')
@section('content')
<div class="container">
@foreach($cards as $card)
<div class="form-group">
<div class="card" style="width: 18rem;">
    <img class="card-img-top img-thumbnail img-fluid" src="{{asset('storage').'/'.$card->card_img}}" alt="{{$card->card_nom}}">
  </div>
</div>
@endforeach

</div>
@endsection

我们不明白发生了什么,我们该如何解决?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    我和朋友也有同样的问题。我不知道如何解决它,但我可以给你一个解决方法!

    在 config/filesystems.php 中更改根文件夹路径。

    'local' => [
                'driver' => 'local',
                'root' => public_path('storage/'),
            ],
    

    然后在你的控制器中

    $dataCard=request()->except('_token');
    
    if($request->hasFile('card_img')){
          $imageName = time().'_CardImg.'.$request->file('card_img')->getClientOriginalExtension();
          $request->file('card_img')->move(public_path().'/storage/cards-Img/', $imageName);
    }
    carta::insert($imageName);
    return redirect('cards');
    

    然后访问您视图上的图像。

    @extends('layouts.app')
    @section('content')
    <div class="container">
    @foreach($cards as $card)
    <div class="form-group">
    <div class="card" style="width: 18rem;">
        <img class="card-img-top img-thumbnail img-fluid" src="{{ asset('storage/cards-Img/'.$card->card_img)}}" alt="{{$card->card_nom}}">
      </div>
    </div>
    @endforeach
    
    </div>
    @endsection
    

    现在所有内容都将保存在公共存储文件夹中。所以这在没有php artisan storage:link 命令的情况下有效。希望对你有用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2012-12-03
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      相关资源
      最近更新 更多