在 Vue.js 和 Laravel 中上传多张图片

时间:2021-05-17 11:42:24

标签: laravel vue.js laravel-5

我正在尝试在 vue.js 和 laravel 中一次上传多个文件,我使用的代码是:

<块引用>

Vue.js 代码:

t = timestamps.values
((df['START'].values[:, None] <= t) & (df['END'].values[:, None] >= t)).any(1)
<块引用>

Laravel 代码:

array([False,  True, False])
<块引用>

我收到此错误:

 <input type="file" v-validate="'required'" multiple @change="uploadDegree" name="uploadDegree" placeholder="Upload Degree"/>

  uploadDegree(e)
            {
                for (let file of e.target.files) {
                    try {
                        let reader = new FileReader();
                         reader.onloadend = file => {
                         this.user.degree_attachment= reader.result;
                        };
                        reader.readAsDataURL(file);                      
                    } catch {}
                }
              }

我试图获取图像的地方,

1 个答案:

答案 0 :(得分:0)

有两个问题,评论中提到的一个

另一个我在你的 vue 代码中注意到,你每次都用文件内容覆盖变量 this.user.degree_attachment,所以首先它不是多次上传,其次它的类型不会是一个数组,所以 Laravel 控制器不会知道如何处理因此 Invalid argument supplied for foreach() 只是因为它不是迭代对象类型。

好吧,我没有在 laravel 部分尝试过,我在这个 sandbox 中测试了 vue,并且控制台将每个文件的内容作为数组项记录在数组中,但这通常是由您的 laravel 验证触发的。

   uploadDegree(e) {
      let a = [];
      for (let file of e.target.files) {
        try {
          let reader = new FileReader();
          reader.onloadend = (file) => {
            a.push(reader.result);
          };
          reader.readAsDataURL(file);
          this.degree_attachment = a;
        } catch {}
      }
      console.log(this.degree_attachment);
    },