我在将图像上传移动到正确的文件夹时遇到问题。当我上传它们时,它们只是转储到主 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();
您的$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
.