有人可以帮助我在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
答案 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);