js 怎么获取input type="file"中的文件

html代码

<input id="load" type="file" onchange="upload(this.files)" multiple/>

js代码

function upload(files){
            console.log(files);
                          $.ajax({
                    type: 'post',
                    url: "download.php",
                    data: {
                        files:files,
                    },
                    dataType: "json",
                    success: function(data) {
                        if(data.status){
                            alert(data.msg);
                            return false;
                        }else{
                            alert(data.msg);
                            return false;
                        }
                    }
            });
        }
        
       但是我console.log 不能打印出file,实在是不知道怎么获取file的属性
阅读 24.8k
3 个回答

你这个可以console出来的,只是上传写得有问题,不能直接ajax上传,应该用formdata上传

onchange="upload(this)"

function upload(obj){
var files = obj.files ;
var formData = new FormData();
    for(var i = 0;i<files.length;i++){                
        formData.append("upfile[]", files[i]);
        
    }
    $.ajax({
          url: "1.php",
          type: "POST",
          data:formData,
          cache:false,         //不设置缓存
          processData: false,  // 不处理数据
          contentType: false   // 不设置内容类型
    });    
}

改成下面这样试试

<input id="load" type="file" onchange="upload()" multiple/>

ajax做文件上传,只能把整个表单的数据发送过去 也就是说用formdata发送

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏