我已在线查看包括此网站在内的所有内容,但未能找到解决我的问题的方法。
我正在尝试使用 JQuery 文件上传插件,并进行了一些修改以将文件类型限制为 CSV 和 XML,以及仅限制为 1 个文件且每个文件最多 5MB。这些新属性工作正常,并且在除 IE 之外的所有浏览器中也工作正常。
我在 fileupload 事件上绑定(bind)了一个事件,它将把 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 中正常工作吗?
非常感谢。
最佳答案
好的,经过大量挖掘后问题已解决,尽管解决方案非常简单并且已在此处介绍:
How to deal with ie8 jquery object doesn't support this property or method Error?
所以基本上在上面的代码中我应该一直使用 trim 的 JQuery 版本,更新如下:
var $filename = $.trim($('#fileupload td.name').text());
以某种奇怪的方式发布问题帮助我解决了这个问题:)
附带说明:我还注意到,如果您对“上传”网页所在的文件夹有 htaccess 限制,那么您在 IE 中也可以有不同的行为。例如,在设置了访问限制的情况下,尽管上传了,但它不显示实际上传的文件,上传仍然有效。当您删除文件时,它会要求您登录。</p>
关于javascript - IE 的 CSV 和 XML 的 JQuery 文件上传插件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892766/