进入数据库的数据在Laravel中生成C:xampptmpphpACA2.tmp



我有一些输入,包括缩略图和图像,我有一些验证条件来检查这些输入的两个数据。在图像列中输入的数据成功输入,但在缩略图列中,它产生C:xampptmpphpACA2.tmp,您如何进行验证,使数据正确输入?

public function store(Request $request)
{

if($request->file('thumbnail')){
$request->file('thumbnail')->store('post-images');
};

$image = array();
if ($files = $request->file('images')) {
foreach ($files as $file) {
$image_name = md5(rand(1000, 10000));
$ext = strtolower($file->getClientOriginalExtension());
$image_full_name = $image_name.'.'.$ext;
$upload_path = 'public/storage/post-images/';
$image_url = $upload_path.$image_full_name;
$file->move($upload_path, $image_full_name);
$image[] = $image_url;
}
}
Product::create([
'title' => $request->title,
'subtitle' => $request->subtitle,
'description' => $request->description,
'features' => $request->features,
'categories_id' => $request->categories_id,
'thumbnail' => $request->thumbnail,
'file' => $request->file,
'images' => implode('|', $image),
]);
return redirect('/dashboard/products');
}

输入数据库的列缩略图

缩略图进入数据库的列图像图片

您不应该将thumbnail指定为$request->thumbnail(这将获得其本地路径)。您需要像这样分配它:

(考虑'post-images'驱动器路径为public/storage/post-images/)

'thumbnail' => 'public/storage/post-images/'.$request->file('thumbnail')->getClientOriginalName()

我的建议是将您为每个image所做的相同逻辑应用于缩略图。

  1. 生成唯一名称
  2. 用生成的名称和扩展名保存
  3. 然后将其路径和名称保存在数据库中

最新更新