LARAVEL7 上传图片但未显示在页面中

时间:2021-03-23 20:06:37

标签: php laravel image laravel-blade

我正在尝试使用普通的 crud 表单为每个产品上传一张图片

使用此代码,我可以看到我将图像上传到存储>应用程序>上传

我可以在 phpMyAdmin 中看到我在 VScode 中看到的相同名称(例如 185138_1616528993.png ) 在那里显示,但我在浏览器中看到损坏的图像。我不知道该怎么办了

这是商店功能

        $newProduct = Product::make($request -> all());
        $color = Color::findOrFail($request['color_id']);

        $img = $request -> file('imgpro');

        $ext = $img -> getClientOriginalExtension();
        $name = rand(100000, 999999) . '_' . time();
        $fileName = $name . '.' . $ext;

        $img -> storeAs('uploads/', $fileName);
        $newProduct -> imgpro = $fileName;

        $newProduct -> color() -> associate($color);

        $newProduct -> save();
        return redirect() -> route('product-show', $newProduct -> id);//  route('product-index');



 
        return redirect() -> route('product-show', $newProduct -> id);//  route('product-index');

这是 product-show.blade.php

    <img src="{{ asset('/public/uploads/' . $product -> imgpro) }}"  alt="imgpro">

    <img src="{{ asset('/storage/app/uploads/' . $product->imgpro) }}" alt="imgpro2">

    <img src="{{ asset( $product -> imgpro )}}" alt="imgpro3">

    <img src="{{ $product -> imgpro }}" alt="boh">

我做了 phpartisan 存储

1 个答案:

答案 0 :(得分:0)

你应该使用这行代码来存储图像

if(request()->hasFile('imgpro'))
{
    $image = $request['imgpro'];
    $imagename = rand(100000,999999).'-'. $image->getClientOriginalExtension();
    request()->file('image')->storeAs('uploads/',$imagename); 
    $newproduct->imgpro = $imagename;
}

在刀片文件中颠倒以下代码

<img src="{{ asset('storage/uploads/'.$product->image) }}">