File upload jQuery文件上传程序块上传停止,无异常

File upload jQuery文件上传程序块上传停止,无异常,file-upload,upload,jquery-file-upload,File Upload,Upload,Jquery File Upload,我正在使用来实现分块文件上传,分为2MB块。在本地主机上进行测试时,以及在速度相当快的DSL连接上进行测试时,上传程序工作正常。在我的同事有58Mbps上传链接的机器上工作得很好。我的问题是,我只有一个0.75Mbps的上传流可用,这是一件好事,因为我们已经设法确定了我们的上传位的问题 我已按如下方式设置上载程序: $(document).ready(function(){ $('#fileupload').fileupload({ maxChunkSize: 20000

我正在使用来实现分块文件上传,分为2MB块。在本地主机上进行测试时,以及在速度相当快的DSL连接上进行测试时,上传程序工作正常。在我的同事有58Mbps上传链接的机器上工作得很好。我的问题是,我只有一个0.75Mbps的上传流可用,这是一件好事,因为我们已经设法确定了我们的上传位的问题

我已按如下方式设置上载程序:

$(document).ready(function(){
    $('#fileupload').fileupload({
        maxChunkSize: 2000000, // 2MB
        multipart: false,
        progressInterval: 1000,
        bitrateInterval: 1000,

        chunkdone: function() {
            console.log('Chunk uploaded.');
        },

        chunkfail: function() {
            console.log('Chunk upload failed!');
        },

        chunksend: function() {
            console.log('Uploading next chunk.');
        },

        done: function(e, data) {
            console.log('Upload completed.');
            $('form#template_form input[type=submit]').removeAttr('disabled');
        },

        fail : function(e, data) {
            console.log('Upload failed!');
            $('form#template_form input[type=submit]').removeAttr('disabled');
        },

        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('div.progress span.meter').css('width', progress + '%');
            $('div.progress span.meter span, div.fileupload-progress .background-text')
                .html(progress + '% complete');
            console.log('Upload ' + progress + '% complete.');
        },

        start: function(e, data) {
            console.log('Upload started.');
            $('form#template_form input[type=submit]').attr({disabled: 'disabled'})
        }
    });
当我开始在慢速连接上上传时,我会达到24%左右,有时甚至更多,然后上传程序就停止了。我没有看到来自服务器的任何错误,而且chunkfail和fail错误处理程序从未被触发。以下是我的浏览器输出的一个片段:

Upload 22% complete. create:243
...
Upload 23% complete. create:243
XHR finished loading: "http://tmstest.personera.com/upload/". jquery.min.js:4
Chunk uploaded. create:219
Uploading next chunk. create:227
Upload 23% complete. create:243
...
Upload 23% complete. create:243
Upload 24% complete. create:243
...
Upload 24% complete. create:243
XHR finished loading: "http://tmstest.personera.com/upload/". jquery.min.js:4
Chunk uploaded. create:219
Uploading next chunk. create:227
Upload 24% complete. create:243
…输出在此停止,表明插件不再触发progressall事件。为什么,我使用它的方式有问题吗?我不明白为什么它在更快的连接上工作,但在较慢的连接上失败

我已经设置了Charles Proxy Debugger来尝试限制本地主机连接,但是通过这种方式,插件永远不会失败,所以我想我要处理的是一个超时问题,它会自动失败吗


有没有办法为插件设置超时事件处理程序,这样我就可以让它取消并重新启动当前区块?

还有一点需要注意的是,Chrome networks控制台会无限期地将上次区块上传的请求显示为(挂起)我正试图创建一个setTimeout处理程序,每次progressall执行时get都会重置该处理程序。如果超过超时限制,我将尝试重新上载最后一个区块。。。