【发布时间】:2019-01-04 15:59:37
【问题描述】:
我可以使用 axios 和 FormData api 将文件发送到服务器,就像这样:
persist(avatar){
let data = new FormData();
data.append('avatar', avatar);
axios.post(`/api/users/${this.user.name}/avatar`, data)
.then(() => flash('Avatar uploaded!'));
}
传递给persist()的头像参数是来自“文件”类型的表单输入的文件对象。
然后我可以在服务器端抓取文件。
是否可以不使用 FormData 来做到这一点?也就是说,模拟FormData的工作?基本上,我试图了解 FormData api 所做的额外工作。也许使用 axios 是不可能的,我应该使用普通的 XMLHttpRequest 来做到这一点。
当然,简单地发送文件对象是行不通的:
axios.post(`/api/users/${this.user.name}/avatar`, {avatar: avatar})
在服务器端,头像对象将为空。我可以发送像 avatar.name 这样的元数据,但不能发送整个对象。
【问题讨论】:
标签: javascript ajax axios multipartform-data