Laravel刀片图像显示

时间:2020-06-23 22:20:25

标签: php laravel

有人可以帮助我在laravel刀片中显示图像吗?

所以这是上传后的完整图片网址

http://webshop.local/uploads/products/1592949903recommend.png

应该将其上传到

public/uploads/products 文件夹。

这是我创建产品(ProductsController)的代码的一部分:

public function store(Request $request)
    {
        $this->validate($request, [
            'title' => 'required',
            'price' => 'required',
            'description' => 'required',
            'productImage' => 'required|image'
        ]);

        $productImage = $request->productImage;

        $productImage_new_name = time() . $productImage->getClientOriginalName();

        $productImage->move('uploads/products' . $productImage_new_name);

        Product::create([
            'title' => $request->title,
            'productImage' => '/uploads/products/' . $productImage_new_name,
            'price' => $request->price,
            'description' => $request->description
        ]);

        return redirect()->route('products.index');
    }

这也是刀片显示器:

<th><img src="{{ $product->productImage }}" alt="{{ $product->title }} image"></th>

由于以下原因,这使我获得了正确的链接:

public function getProductImageAttribute($productImage){
        return asset($productImage);
    }

在产品模型中。

编辑 当我上传新图像时,它不会进入文件夹,而是仅创建具有图像名称的新文件夹,并且在其中是名称为phpSOMETHING_RANDOM_HERE.tmp

的文件

2 个答案:

答案 0 :(得分:0)

在您的商店方法中

$path = $request->productImage->store('uploads/products');
// OR if you need to give it name
$path = $request->productImage->storeAs('uploads/products', 'filename.jpg');

您可以在创建产品时'productImage' => $path,

答案 1 :(得分:0)

如果其他人遇到此问题,请检查代码的这一部分。

$productImage = $request->productImage;
$productImage_new_name = time() . $productImage->getClientOriginalName();
$productImage->move('uploads/products', $productImage_new_name);

特别是这一行:

$productImage->move('uploads/products', $productImage_new_name);

在整个过程中我在路径和变量之间都有点,表示上传文件的名称

因此,要解决此问题,只需将点换成昏迷即可。

代替

$productImage->move('uploads/products' . $productImage_new_name);

您需要

$productImage->move('uploads/products', $productImage_new_name);