首页 > 解决方案 > 使用 laravel 上传多个文件

问题描述

我目前正在尝试通过 API 端点上传多个文件。这是一个 POST 请求,它的主体包含表单数据。

我无法为每个循环完成它,但如果没有 foreach 并且只有一个文件,它就可以正常工作。

不起作用的代码:

$path = config('app.photos_dir');

        if($request->hasFile('photos'))
        {
                if (!file_exists($path)) {
                    mkdir($path, 0777, true);
                }
                try {
                    $files = $request->file('photos');

                    foreach ($files as $file){
                        $file->move($path, $files->getClientOriginalName());
                    }
                    
                } catch (\Exception $exception) {

                    return response(['status' => '500', 'error' => 'Error while uploading files'], 500);
                }
                
                return response(['status' => '200', 'data' => ['Photos uploaded correctly']], 200);


        }
         

如上所述,一旦我删除 foreach 子句,它就会开始工作(尽管这只会上传在“上传”窗口提示中选择的第一个/最后一个文件)

$files = $request->file('photos');
                    $files->move($path, $files->getClientOriginalName());

不太确定这里有什么问题。我发现其他人在循环请求文件时没有问题,但就我而言,无论我做什么都不会。

标签: phplaravelhttppost

解决方案


已修复 - 我找到了解决方案。出于某种原因,我不得不将身体的参数名称从照片附加到照片[]


推荐阅读