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

时间:2018-08-25 18:10:28

标签: php laravel upload image-uploading

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

1 个答案:

答案 0 :(得分:0)

您在/中缺少$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