我一直在尝试通过请求访问此文件包,但没有成功:
这就是我要发送的内容:
这是我在执行 dd($request) 时收到的信息:
但是当尝试输出或访问它时:
例如:
dd($request->file('files')[0]);
它输出
message: "Cannot use object of type Symfony\Component\HttpFoundation\FileBag as array",
我也尝试过
dd($request->file('files'));
但它输出NULL
我也尝试过:
$t = $request->files->all();
dd($t);
这个输出:[]
我发送它的方式是使用 axios
let formData = new FormData();
formData.append('draft', true);
formData.append('global_id', this.paragraph.ManualBook_SectionParagraphGlobalID);
formData.append('newparagraph', this.newParagraph.tobeCreated);
formData.append('paragraph_id', this.paragraph.ManualBook_SectionParagraphGlobalID);
formData.append('display_order', this.paragraph.DisplayOrder);
formData.append('section_id', this.current_section);
formData.append('RCBulletinNumber', this.paragraph.RCBulletinNumber);
formData.append('paragraph_title', this.paragraph.ParagraphTitle);
formData.append('paragraph_text', this.paragraph.ParagraphText);
formData.append('go_live_date', this.getGoodDate(this.edited_paragraph.go_live_date));
formData.append('revision', this.edited_paragraph.revision);
formData.append('revision_number', this.paragraph.RevisionVersion);
formData.append('files', this.files);
axios.post(window.baseURL + 'api/admin/paragraph_editor', {
formData
}, {
headers: {
'Content-Type': 'multipart/form-data'
}
}....
知道为什么会发生这种情况吗?
最佳答案
如果您想通过 AJAX 请求使用 FormData
API 上传多个文件,则需要将每个文件附加到 FormData
对象。假设您的输入文件字段如下:
<input type="file" id="files" name="files[]" multiple>
假设 this.files
将包含多个文件。因此,我们将循环遍历文件,将它们附加到 FormData
对象,如下所示:
let formData = new FormData();
Array.from(this.files).forEach(function(file){
formData.append('files[]', file);
});
现在您可以在 Controller 的方法中获取这些文件,如下所示:
$request->file('files');
希望这对您有帮助!
关于laravel - 在 foreach 循环中访问 FileBag 文件数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62354200/