Laravel API 从 vue js 发送文件数组
Posted
技术标签:
【中文标题】Laravel API 从 vue js 发送文件数组【英文标题】:Laravel API send array of files from vue js 【发布时间】:2022-01-15 06:19:13 【问题描述】:您好,我在向 API 发送 img 文件时遇到问题
e.target.files.forEach(file =>
this.images[id]= file;
);
async handleFormSubmit()
let data = new FormData();
data.append('images[]',this.images);
await this.setCreatePost(data)
当我获得 console.log 文件时:
lastModified: 1637855593567
lastModifiedDate: Thu Nov 25 2021 16:53:13 GMT+0100 (Central European Standard Time)
name: "elena-putina-WuSzNJpys_4-unsplash.jpg"
size: 1027854
type: "image/jpeg"
webkitRelativePath: ""
当我 console.log formData 我得到:
data: Array(1)
0: "[object File]"
length: 1
当我尝试对文件进行字符串化时,我得到:
data: ['[]']
当我在 API 上对其进行解码时,我得到了空对象。
谢谢。
【问题讨论】:
【参考方案1】:在handleSubmitForm()
我是这样追加的:data.append('images[]',this.images);
它需要像这样附加:
this.images.forEach((image) =>
data.append('images[]', image);
);
在 Laravel,我可以为每个循环执行如下操作: (在它不起作用之前)
foreach ($request->file('images') as $image)
$image_name = $image->getClientOriginalName();
$image_name = time().'_'.$image_name;
$image->move(storage_path('images'), $image_name);
【讨论】:
以上是关于Laravel API 从 vue js 发送文件数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vue.js 前端通过集合数据显示 laravel 组
Vue.js,如何通过 axios 在 api 链接中发送对象?
根据Laravel Vue Js Api中的关系从多个表中删除数据