我在上传图片到正确的文件夹时遇到问题。当我上传它们时,它们只是转储到主img文件夹中,而不是转到特定的子文件夹。
这是我的代码:
$rental = new Rental;
$rental->title = $request->title;
$rental->name = $request->name;
$rental->description = $request->description;
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('img/rentals' . $filename);
Image::make($image)->save($path);
$rental->image = $filename;
}
$rental->save();
答案 0 :(得分:0)
您在/
中缺少$path
。下一行...
$filename = time() . '.' . $image->getClientOriginalExtension();
将生成一个字符串,类似于123456789.jpg
。然后在下一行中您正在做...
$path = public_path('img/rentals' . $filename);
将img/rentals
和123456789.jpg
连接在一起,得到img/rentals123456789.jpg
。注意,.
连接了两个字符串。然后,您要将结果字符串传递到public_path
,该字符串将引用公用目录中名为img
的文件夹和文件名rentals123456789.jpg
。
要解决您的问题,您只需要在两者之间加一个斜杠:
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('img/rentals/' . $filename);
这将在您的公共路径中产生一个文件夹img/rentals
,文件名为123456789.jpg
。