使用 Laravel 将文件上传移动到特定文件夹



我在将图像上传移动到正确的文件夹时遇到问题。当我上传它们时,它们只是转储到主 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/rentals123456789.jpg连接在一起,产生img/rentals123456789.jpg。请注意连接两个字符串的.。然后将生成的字符串传递给public_path这将引用公共目录中名为img的文件夹和文件名rentals123456789.jpg

要解决您的问题,您只需要在两者之间粘贴一个正斜杠:

$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('img/rentals/' . $filename);

这将导致在您的公共路径中img/rentals一个文件夹,文件名为123456789.jpg.

相关内容

最新更新