繁体   English   中英

如何从存储文件夹中检索图像以在刀片服务器中查看?

[英]How to retrieve images from storage folder to view in blade?

我正在尝试从存储文件夹访问图像以在刀片视图中显示。 图像位于存储/应用/照片中。

我已经运行了一个命令php artisan storage:link,但是仍然没有显示图像的运气。

这是我的家庭管理员

public function detailPro($id) {
    $products=DB::table('products_photos')
         ->join('products','products_photos.product_id','products.id')
         ->get();
         //dd($products);
    return view('front.product_detail', compact('products'));
}

这是我的detail.blade.php

@foreach($products as $product)
   <div class="col-md-6 col-xs-12">
   <div class="thumbnail">
     </div>
     <img src="{{ url('storage/app/photos/'.$product->filename) }}" style="width:200px;" alt="">
   </div>
@endforeach

这是我将图像保存到数据库的逻辑

public function store(Request $request)
{
    $product = Product::create($request->all());
    foreach ($request->photos as $photo) {
        $filename = $photo->store('photos');
        ProductsPhoto::create([
            'product_id' => $product->id,
            'filename' => $filename
        ]);
    }
    return 'Upload successful!';
}

该图片不会出现,并且显示的网址是“ http://127.0.0.1:8000/storage/app/photos/photos/xPNOQQTaTjPaKUClAHOxx7NEjsNLHguhVuAryZEg.jpeg ”。

您应该检查一下 ,如果您已经运行过php artisan storage:link则可以使用Storage::url('url')

@foreach($products as $product)
   <div class="col-md-6 col-xs-12">
   <div class="thumbnail">
     </div>
     <img src="{{  Storage::url($product->filename) }}" style="width:200px;" alt="">
   </div>
@endforeach

将您的store方式更改为

public function store(Request $request)
{
    $product = Product::create($request->all());
    foreach ($request->photos as $photo) {
        $filename = $photo->store('public/photos');
        ProductsPhoto::create([
            'product_id' => $product->id,
            'filename' => $filename
        ]);
    }
    return 'Upload successful!';
}
  1. 使用文件系统的“公共”配置:
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
  1. 运行php artisan storage:link
  2. 将照片移到目录“ storage / app / public / photos”
  3. 在detail.blade.php中使用
<img src="{{ url('/storage/'.$product->filename)}}" style="width:200px;" alt="">

而且你会没事的;)

在刀片上尝试以下操作:

@foreach($products as $product)
   <div class="col-md-6 col-xs-12">
   <div class="thumbnail">
     </div>
     <img src="{{ url('photos/'.$product->filename) }}" style="width:200px;" alt="">
   </div>
@endforeach

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM