Laravel 在foreach循环中访问FileBag文件数组
我一直试图从请求中访问此文件包,但我运气不佳: 这就是我要发送的内容: 这就是我在执行dd($request)时收到的信息: 但在尝试输出或访问它时: 例如:Laravel 在foreach循环中访问FileBag文件数组,laravel,vue.js,axios,Laravel,Vue.js,Axios,我一直试图从请求中访问此文件包,但我运气不佳: 这就是我要发送的内容: 这就是我在执行dd($request)时收到的信息: 但在尝试输出或访问它时: 例如: dd($request->file('files')[0]); 它输出 message: "Cannot use object of type Symfony\Component\HttpFoundation\FileBag as array", 我也试过了 dd($request->file('files'));
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>
let formData = new FormData();
Array.from(this.files).forEach(function(file){
formData.append('files[]', file);
});
$request->file('files');
现在,您可以在控制器的方法中获取这些文件,如下所示:
<input type="file" id="files" name="files[]" multiple>
let formData = new FormData();
Array.from(this.files).forEach(function(file){
formData.append('files[]', file);
});
$request->file('files');
希望这对你有帮助 如果希望通过AJAX请求使用
FormData
API上载多个文件,则需要将每个文件附加到FormData
对象。假设您的输入文件字段如下所示:
<input type="file" id="files" name="files[]" multiple>
let formData = new FormData();
Array.from(this.files).forEach(function(file){
formData.append('files[]', file);
});
$request->file('files');
现在,您可以在控制器的方法中获取这些文件,如下所示:
<input type="file" id="files" name="files[]" multiple>
let formData = new FormData();
Array.from(this.files).forEach(function(file){
formData.append('files[]', file);
});
$request->file('files');
希望这对你有帮助