[英]Uploading and storing an image in Laravel 5.8 image not storing in database or file path
laravel 相當新我想上傳圖像並將其存儲在數據庫和文件路徑中。 我遇到的第一個問題是圖像沒有出現在validateRequest function 的數組中,因此它在數據庫中返回為 NULL。 第二個問題是我嘗試使用storage:link來存儲所有上傳的圖像,但似乎無法存儲圖像並且不確定我打算使用什么文件路徑。
public function validateRequest()
{
$validated = request()->validate([
'title' => 'required|string',
'h1' => 'required|string',
'page_title' => 'required|string',
'meta_description' => 'required|string',
'content' => 'required|string',
'active' => 'integer'
]);
if (request()->hasFile('image')){
$validated = request()->validate([
'image' => 'sometimes|file|image|mimes:jpeg,png,jpg,gif,svg|max:5000'
]);
}
// Check if active is ticked
$validated['active'] = isset(request()->active[0]) ? 1 : 0;
// Create slug from title
$validated['slug'] = Str::slug(request()['title'], '-');
return $validated;
}
public function storeImage($post)
{
if (request()->hasFile('image')) {
$post->update([
'image' => request()->image->storeAs('/images/uploads/posts', 'public')
]);
}
}
我嘗試將圖像與$validated = request()->validate
中的字段的 rest 一起放置,但即使已選擇圖像,它也會顯示“此圖像必須是圖像”。 非常感謝您的幫助。
第一個問題是驗證。 請將此添加到您的form
中
<form ... enctype="multipart/form-data">
第二個問題就是這樣解決。 在你的 controller 像這樣調用 function
$productImage = $request->file('your_image_name');
if (is_file($productImage)) {
$imageUrl = $this->productImageUpload($productImage);
$product->your_database_field_name = $imageUrl;
}
protected function productImageUpload($productImage)
{
$imageName = $productImage->getClientOriginalName();
$directory = 'your_file_path/your_file_path/';
$imageUrl = $directory . $imageName;
$productImage->move($directory, $imageName);
return $imageUrl;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.