Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多个文件从Vuejs和Vuex上载到Laravel?_Laravel_Vuejs2_Vuex - Fatal编程技术网

如何将多个文件从Vuejs和Vuex上载到Laravel?

如何将多个文件从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

我正在使用Vuetifyjs创建一个消息系统,我正在尝试创建一个带有附件的消息系统

我使用Vuex async Wait进行状态管理和发送http请求。 但是,im发送json格式请求而不是多部分/表单数据,是否可能

 //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);
    },