如何将多个文件从Vuejs和Vuex上载到Laravel?
我正在使用Vuetifyjs创建一个消息系统,我正在尝试创建一个带有附件的消息系统 我使用Vuex async Wait进行状态管理和发送http请求。 但是,im发送json格式请求而不是多部分/表单数据,是否可能如何将多个文件从Vuejs和Vuex上载到Laravel?,laravel,vuejs2,vuex,Laravel,Vuejs2,Vuex,我正在使用Vuetifyjs创建一个消息系统,我正在尝试创建一个带有附件的消息系统 我使用Vuex async Wait进行状态管理和发送http请求。 但是,im发送json格式请求而不是多部分/表单数据,是否可能 //html input <input type="file" multiple ref="attachments" @change="fileOnChange" /> 将文件存储在LARAVEL存储器中并保存在数据库中的最佳方法是什么?这样做有什么具体原因吗?F
//html input
<input type="file" multiple ref="attachments" @change="fileOnChange" />
将文件存储在LARAVEL存储器中并保存在数据库中的最佳方法是什么?这样做有什么具体原因吗?FormData是正确序列化文件内容所必需的,如果您不能使用FormData,您可以尝试对文件进行base64编码,然后将其推送到
附件[]
,但我不能保证这是一个好方法您的意思是说我将使用FileReader对吗?这里发生的是我创建了SPA,vuejs是用于状态管理的前端和vuex存储。我使用Laravel作为后端。这对我来说有点难。所以我想,最好的方法是序列化表单。这是最常见的设置。是的,我现在同意了,我试着传递base64文件,从javascript到php,这有点难解码base64。我试过了,但是它坏了。我学过哑剧类型,现在我意识到了。这是最好的旅行方式。序列化表单以发送带有文件附件的post请求。非常感谢。
data() {
return {
form: new Form({
receiver: "",
subject: "",
content: "",
attachments: []
})
}
}
//method
fileOnChange() {
let files = this.$refs.attachments.files;
if (!files.length) {
return false;
}
for (let i = 0; i < files.length; i++) {
this.form.attachments.push(files[i]);
}
},
sendMessage() {
this.addMessage(this.form)
}
async addMessage({ commit }, message) {
const config = { headers: { "Content-Type": "multipart/form-data" } };
const response = await axios.post("api/message", message, config);
},