【问题标题】:JQuery File Upload plugin issue with IE for CSV and XML用于 CSV 和 XML 的 IE 的 JQuery 文件上传插件问题
【发布时间】:2012-10-15 09:28:14
【问题描述】:

我已在线查看包括此网站,但无法找到解决问题的方法。

我正在尝试使用 JQuery 文件上传插件,并进行了一些修改以将文件类型限制为 CSV 和 XML,以及仅限于 1 个文件和每个文件最多 5MB。这些新属性运行良好,并且在除 IE 之外的所有浏览器中也运行良好。

我在 fileupload 事件上绑定了一个事件,它将 CSV 呈现为 HTML 表格。这适用于除 IE 之外的所有浏览器。在 IE 中,它要么抛出错误,要么冻结,右上角的绿色进度条显示以下信息:

7.123775601068567 比特/秒 | 00:00:00 | 100.00 % | 0.00 KB / 0.00 KB

它实际上看起来像挂起,因为它似乎没有完成上传。当我重新加载同一页面时,它会显示正确的显示!没有进度条!

更新:当我简单地上传 CSV 文件时,代码很好。现在,当我尝试包含回调选项时,问题就出现了。它似乎与我从 'fileuploaddone' 更新的 'fileuploadcompleted' 事件有关,它改进了结果但仍然不正确,并且根本不执行和呈现 HTML 表(例如,请参见上面的链接)

// Load existing files:
$('#fileupload').each(function () {
    var that = this;            
    $.getJSON(this.action, function (result) {
        if (result && result.length) {
            $(that).fileupload('option', 'done')
                .call(that, null, {result: result});
        }
    });
}).bind('fileuploadcompleted', function (e, data) {         
    //console.log('fileuploaddone:start');
    var $filename = $('#fileupload td.name').text().trim();
    //console.log('filename is ' + $filename);

$.get('../jQuery-File-Upload/server/php/files/' + $filename, function(data) {
        $('#CSVSource').html('<pre>' + data + '</pre>');
});
$('#CSVTable').CSVToTable('../jQuery-File-Upload/server/php/files/' + $filename,{ 
        loadingImage: 'img/loading-table.gif', 
        startLine: 0 }).bind("loadComplete",function() {//for future use});
    }).bind('fileuploaddestroy', function (e, data) {
        //console.log('fileuploaddestroy');
        $('div#CSVTable').fadeOut(1000);            
    });

任何想法如何让它在 IE 中工作?

非常感谢。

【问题讨论】:

  • 您尝试过官方支持论坛groups.google.com/forum/#!forum/jquery-fileupload 吗?
  • 您好,感谢您的链接。我已经检查了您上面提到的论坛,但找不到任何东西。我会在那里发布我的问题,以防有人在这里错过。如果我得到任何好的反馈,我会在这里分享。
  • 好吧,关于我上面的帖子,我已经设法解决了“删除不起作用的问题”——我只需要注释掉 console.log 语句,这显然在某些版本的 IE 中不起作用。但是,我仍然有关于“更新”的显示问题

标签: javascript jquery-ui internet-explorer jquery-plugins plugins


【解决方案1】:

好的,经过大量挖掘,问题得到了解决,尽管解决方案非常简单,并已在此处介绍:

How to deal with ie8 jquery object doesn't support this property or method Error?

所以基本上在上面的代码中我应该一直使用 JQuery 版本的 trim,更新如下:

var $filename = $.trim($('#fileupload td.name').text());

以某种奇怪的方式发布问题帮助我解决了这个问题:)

附带说明:我还注意到,如果您对“上传”网页所在的文件夹有 htaccess 限制,那么您在 IE 中也可以有不同的行为。例如,在设置了访问限制的情况下,尽管上传,但它不会显示实际上传的文件,但上传仍然有效。当你删除文件时,它会要求你登录。

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2012-05-08
    相关资源
    最近更新 更多