我已经在网上查了这个网站,但找不到解决我的问题的方法。
我正在尝试使用 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 中工作?
非常感谢。