在Laravel 5.4中上传图片时移动'tmp'目录不起作用

3

当我上传图片时,它会保存在D:\xampp\tmp\phpD0E0.tmp目录中。但我想将其保存在public/uploads/banner中。请帮帮我。以下是我的代码:

BannersController.php

public function store(Request $request)
{

    $requestData = $request->all();


    if ($request->hasFile('banner_image')) {
        foreach($request['banner_image'] as $file){
            $uploadPath = public_path('/uploads/banner');

            $extension = $file->getClientOriginalExtension();
            $fileName = rand(11111, 99999) . '.' . $extension;

            $file->move($uploadPath, $fileName);
            $requestData['banner_image'] = $fileName;
        }
    }

    Banner::create($requestData);
    Session::flash('flash_message', 'Banner added!');
    return redirect('Banner/banners');
}

1
这里的$file是什么?$file->move($uploadPath, $fileName); - Mayank Pandeyz
$request['banner_image'] 作为 $file - Rashed Hasan
@Md.RashedulHasan,请问你在这里的上传路径是什么:'root' => public_path() . '/uploads',它在config/filesystems.php文件中。 - Jigs Virani
'root' => storage_path('app/public') 'root' => storage_path('app/public') - Rashed Hasan
@ Jigs Virani 修改了'root' => storage_path('app/public') 为 'root' => public_path() . '/uploads',但仍未生效。 - Rashed Hasan
1个回答

0

请将路径还原为'root' => storage_path('app/public')

然后尝试更改以下行:

$extension = $file->getClientOriginalExtension();
$fileName = rand(11111, 99999) . '.' . $extension;

使用这个:

$fileName = rand(11111, 99999) . '.' .  $file->getClientOriginalName();

希望这能对你有所帮助。

我为此制作了演示,并且使用相同的代码运行良好。请同时检查其他可能性。如果需要帮助,请告诉我,我会立即帮助您。 - Jigs Virani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接