数据未附加到FormData对象

时间:2014-09-17 15:35:34

标签: javascript php jquery ajax forms

我正在尝试使用Jquery上的AJAX为图像上传系统上传多个图像。

但是,我无法让FormData对象从文件输入中获取数据。这是我的代码:

HTML:

<form id="multiform" role="form" action="process.php" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <div class="">
            <label for="picture">Upload Pictures</label>
            <input type="file" id="pic_upload_file" name="pics[]" multiple>
            <input type="button" id="pic_upload" name="pic_upload" value="Upload">
        </div>
    </div>
</form>

JQuery的

$('#pic_upload').click(function(e) {
    var formData = new FormData();
    formData.append("pics", file);
}); 

这个对象已创建,我可以在控制台中看到它,但我不知道如何将用户文件输入数据发送到它以发送到PHP脚本。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您有一个带有多个文件的文件输入,因此您必须获取这些文件并将每个文件追加到formData对象

$('#pic_upload').on('click', function(e) {
    var formData = new FormData(),
        files    = $('#pic_upload_file').get(0).files;

    $.each(files, function(i, file) {
        formData.append("pics_"  + i, file); 
    });

    $.ajax({
        url         : 'test.php',
        data        : formData,
        contentType : false,
        processData : false,
        type        : 'POST'
    });

});