从输入文件中获取所选文件

时间:2016-10-04 09:50:51

标签: javascript jquery

我试图将所选文件从输入文件放到新创建的' formData'在表格提交上,以下是我的尝试。

首先我有表格

<form action="/upload.php">
    <fieldset>
        <input type="file" name="file">
        <input type="text" name="full_name">
    </fieldset>
    <button>SEND</button>
</form>

然后是脚本

$(document).ready(function(){
    $("form").submit(function(e){
        e.preventDefault();
        var dis = $(this),fdata = new FormData();
        fdata.append('file',dis.find('input[type="file"]').files[0]);
        fdata.append('full_name',dis.find('input[name="full_name"]').val());
    });
});

但它给了我这个错误

  

未捕获的TypeError:无法读取属性&#39; 0&#39;未定义的

有任何帮助,想法吗?

2 个答案:

答案 0 :(得分:1)

FormData接受表单元素

作为输入

尝试以下

fdata = new FormData($(this)[0]);

删除追加

答案 1 :(得分:1)

由于dis.find('input[type="file"]')返回jQuery对象并且他们没有files属性,因此您收到错误,您需要获取底层DOM元素然后访问该属性。所以使用

dis.find('input[type="file"]')[0].files[0]

而不是

dis.find('input[type="file"]').files[0]