我正在嘗試將上傳的圖片保存在 public/images 目錄中。
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'description' => 'required',
'image' => 'required|image|mimes:jpg,png,jpeg|max:5048'
]);
$newImageName = uniqid() . '-' . $request->title . '.' . $request->image->extension();
$request->image->move(public_path(('images'), $newImageName));
Post::create([
'title' => $request->input('title'),
'description' => $request->input('description'),
'slug' => SlugService::createSlug(Post::class, 'slug', $request->title),
'image_path' => $newImageName,
'user_id' => auth()->user()->id
]);
return redirect('/blog')
->with('message', 'Dein Beitrag wurde erstellt.');
}
一切正常 - 除了檔案名。它的名稱應該是 $newImageName,但看起來像 'php51F7.tmp'。此外,擴展名是“.tmp”而不是“.png”或“.jpg”。
非常感謝您的幫助!
PS:我是 Laravel 的絕對初學者,請耐心等待。
uj5u.com熱心網友回復:
這是額外圓括號的問題
代替
$request->image->move(public_path(('images'), $newImageName));
和
$request->image->move(public_path('images'), $newImageName);
uj5u.com熱心網友回復:
你的代碼有錯別字
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'description' => 'required',
'image' => 'required|image|mimes:jpg,png,jpeg|max:5048'
]);
$newImageName = uniqid() . '-' . $request->title . '.' . $request->image->extension();
#Notice here, move() accepts two parameteres
$request->image->move(public_path('images'), $newImageName);
Post::create([
'title' => $request->input('title'),
'description' => $request->input('description'),
'slug' => SlugService::createSlug(Post::class, 'slug', $request->title),
'image_path' => $newImageName,
'user_id' => auth()->user()->id
]);
return redirect('/blog')
->with('message', 'Dein Beitrag wurde erstellt.');
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/381831.html
