【问题标题】:Laravel blade image displayLaravel 刀片图片展示
【发布时间】:2020-10-14 02:18:44
【问题描述】:

有人可以帮我在 laravel Blade 中显示图像吗?

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

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的文件

【问题讨论】:

  • @JonathanAkweteyOkine 它和我的模型做同样的事情。 :)
  • @Saed Silajdzic 抱歉,我看错了产品型号。
  • 您是否检查了图像是否在文件夹 /uploads/products/ 中?
  • 你的问题是什么?
  • $productImage->move(public_path('uploads/products' . $productImage_new_name));

标签: php laravel


【解决方案1】:

在你的存储方法中

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

您可以在创建产品时'productImage' =&gt; $path,

【讨论】:

  • 谢谢,与此同时,我找到了造成这一切的原因:) 只是点错了地方。我评论下,你可以看看。
【解决方案2】:

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

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

特别是这一行:

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

整个时间我在路径和变量之间用点表示上传文件的名称

所以要解决这个问题,只需将 dot 更改为 coma。

而不是

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

你需要

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-03
    • 2019-01-31
    • 2016-09-09
    • 2017-08-07
    • 2019-04-02
    • 2020-09-13
    • 2022-10-12
    • 2016-01-05
    相关资源
    最近更新 更多