jQuery FileUpload不会触发'done'

Tom*_*ski 20 jquery blueimp jquery-file-upload

我使用jQuery-File-Upload插件.我写了一个简单的代码来测试它 - 它可以工作,但并非没有问题.done即使文件已上传且进度条已到达结束,它也不会触发.

这是代码:

$('#file_file').fileupload({
    dataType: 'json',
    autoUpload: true,
    add: function (e, data) {
        data.context = $('<p/>').text('Uploading...').appendTo(document.body);
        data.submit();
    },
    progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('#progress .bar').css(
            'width',
            progress + '%'
        );
    },
    done: function (e, data) {
        alert('Done');
    }
});
Run Code Online (Sandbox Code Playgroud)

我的输入很简单:

<input type="file" id="file_file" name="file[file]" />
Run Code Online (Sandbox Code Playgroud)

bra*_*w2k 28

如果您的服务器没有返回JSON,请尝试删除:

dataType: 'json'
Run Code Online (Sandbox Code Playgroud)

否则,您可能会遇到一个容易测试的失败事件:

fail: function(e, data) {
  alert('Fail!');
}
Run Code Online (Sandbox Code Playgroud)


Tom*_*ski 10

我换了几件事就行了.这里:

$('#file_file').fileupload({
    autoUpload: true,
    add: function (e, data) {
        $('body').append('<p class="upl">Uploading...</p>')
        data.submit();
    },
    progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('#progress .bar').css(
            'width',
            progress + '%'
        );
    },
    done: function (e, data) {
        $('.upl').remove();
        $.each(data.files, function (index, file) {
            /**/
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 作品。请注意,您必须将“data.result.files”更改为“data.files”。 (2认同)

小智 6

我使用autoUpload修复:true,看起来当未设置autoUpload属性时(即使上传工作正常),也不会触发done事件.