【问题标题】:Laravel API send array of files from vue jsLaravel API 从 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 上对其进行解码时,我得到了空对象。

谢谢。

【问题讨论】:

    标签: file-upload vuejs2 laravel-8


    【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 2021-09-20
      • 2021-02-06
      • 2020-01-27
      • 2020-11-08
      • 2018-02-12
      • 2019-08-08
      • 2022-08-23
      相关资源
      最近更新 更多