【发布时间】:2021-12-07 01:04:42
【问题描述】:
我对表单数据有疑问。我在一个数组中有很多文件,但是当我必须在我的控制器中获取它们时,我使用 file() 但它不会返回上传文件的集合,所以我正在寻找一种解决方案来实现它。我的客户是 Anguler,我的 API 是 Laravel。
所以当我发送我的请求时,我会得到我的文件:
(2) [File, File]
但是我不知道如何创建一个集合,所以我被这段代码困住了,它只给了我一个文件。当我dd() 我只得到一个文件。
$files= $req->file('files');
我想做这个:
$files->each(function ($item, $key) {
//some code...
});
编辑 我更改了客户端的逻辑以创建许多具有不同键名的文件,以便在获取请求内容后循环。
for (var i = 0; i < email.file.length; i++) {
form.append('file'+[i], email.file[i], email.file[i].name);
}
现在我有:
#parameters: array:2 [▼
"file0" => Symfony\Component\HttpFoundation\File\UploadedFile {#33 ▶}
"file1" => Symfony\Component\HttpFoundation\File\UploadedFile {#34 ▶}
]
所以我得到一个对象,我想将它转换为数组或集合。
【问题讨论】:
-
你可以通过$request->files访问文件,然后你可以使用foreach访问每个文件
-
看来$req->files不是集合也不是数组。
-
可以显示相关的客户端代码吗?
-
在客户端我这样做了:` for (let key in imagedata.files) { formData.append("images[]", imagedata.files[key]); } ` 现在我可以通过控制器中的 $request->images 将图像作为数组访问,如果你想将数组转为集合,可以使用
col()方法 -
我在 dd() 中得到一个数组数组,但 gettype() 返回一个对象。
标签: laravel collections multipartform-data