Jquery input.files等价

Man*_*eld 19 javascript jquery file-upload

我有一个简单的html表单,只有一个文件上传输入.(jsfiddle)

在过去,我已经访问过用户选择的文件input.files,但是我对如何使用JQuery这一点感到茫然;

码:

$(function () {
    $("#cmdSubmit").bind("click", function () {
        var file = document.getElementById("fileInput").files[0];
        alert(file); //A

        file = $("#fileInput").val();
        alert(file); //B

        file = $("#fileInput").files[0];
        alert(file); //C

    });        
});?
Run Code Online (Sandbox Code Playgroud)

选项A给出了我期望的文件对象.但是,选项B只是给我上传文件的名称,并且(据我所知)不是文件本身.

选项C显示files未定义.

什么是Jquery相当于input.files

注意:我不反对使用原生javascript; 但鉴于我在整个项目的其余部分使用JQuery,我更愿意在这里使用它,如果可能的话.

Ste*_*fan 45

您必须访问该元素.尝试:

file = $("#fileInput")[0].files[0];
alert(file); //C
Run Code Online (Sandbox Code Playgroud)

或者(谢谢杰克)

file = $("#fileInput").prop('files')[0];
alert(file);
Run Code Online (Sandbox Code Playgroud)

小提琴

  • `.prop('files')[0]`比`.attr('file')更有可能工作 (4认同)