【问题标题】:select and upload multiple photos client side选择并上传多张照片客户端
【发布时间】:2021-03-30 16:21:03
【问题描述】:

我正在尝试使用此代码从我的计算机上传图片

var filesValues = []

$(photosbtn).click(function() {
    photos.click()

    $(photos).change((e) => {

    const file  = e.target.files[0];

 if (file){

 filesValues.push(file)

console.log(filesValues)
}

}}

现在如果我选择一个文件,结果就是这样一个文件

0:文件{名称:“130492893_1475704719298017_6321765405148113863_n.jpg”,最后修改: 1607806703000,最后修改日期:2020 年 12 月 12 日星期六 22:58:23 GMT+0200 (东欧标准时间), webkitRelativePath: "", size: 17124,...}长度:1__proto__:数组(0)

但是如果我再次选择一个,结果会变成 [第一个图像,第二个图像,第二个图像] 它会像这样重复最后一个文件

0:文件{名称:“130492893_1475704719298017_6321765405148113863_n.jpg”, 最后修改:1607806703000,最后修改日期:2020 年 12 月 12 日星期六 22:58:23 GMT+0200(东欧标准时间), webkitRelativePath: "", 大小: 17124, ...}

1: 文件 {name: "WhatsApp Image 2020-09-21 at 6.41.36 AM.jpeg", lastModified: 1600663313303, lastModifiedDate:2020 年 9 月 21 日星期一 06:41:53 GMT+0200(东欧 标准时间), webkitRelativePath: "", size: 61490, ...}

2:文件{名称:“WhatsApp Image 2020-09-21 at 6.41.36 AM.jpeg”,最后修改: 1600663313303,最后修改日期:2020 年 9 月 21 日星期一 06:41:53 GMT+0200 (东欧标准时间),webkitRelativeP

如果我再次选择一个,最后一个将重复三次,依此类推。

请问有什么解决办法?

【问题讨论】:

    标签: javascript image file upload


    【解决方案1】:

    我找到了答案,就是这样

    var filesValues = []
    
    $(photosbtn).click(function() {
        photos.click()
    })
    
        $(photos).change((e) => {
    
        const file  = e.target.files[0];
    
     if (file){
    
     filesValues.push(file)
    
    console.log(filesValues)
    })
    

    我们不应该将 (.change) 函数放在 (.click) 函数中。

    【讨论】:

      【解决方案2】:

      不要这样做:

      filesValues.push ...
      

      试试这个方法:

      var files = new FormData();
      files.append(firstFile);
      files.append(secondFile);
      

      【讨论】:

      • 同样的问题
      猜你喜欢
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      相关资源
      最近更新 更多