我有一个包含上传文件的表单。我创建了一个jQuery函数来验证并显示选择文件时的文件大小。当用户浏览并选择文件在Google Chrome中时,会立即显示大小。但是,在IE中,提交表单时会出现文件大小,这意味着如果所有表单字段都有效并且用户单击“提交”按钮,则文件大小显示为1秒钟,然后我将用户定向到成功页面。
这是我的jQuery代码:
(function ($, W, D) {
var JQUERY4U = {};
JQUERY4U.UTIL = {
setupFormValidation: function () {
$("#addMeeting-form").validate({
errorElement: 'div',
rules: {
record: {
required: true,
accept: "doc|docx|pdf",
checkRecordSize: true
}
},
submitHandler: function (form) {
form.submit();
}
});
jQuery.validator.addMethod('checkRecordSize', function () {
var iSize = ($("#recordToUpload")[0].files[0].size / 1024);
if (iSize / 1024 > 1) {
if (((iSize / 1024) / 1024) > 1) {
iSize = (Math.round(((iSize / 1024) / 1024) * 100) / 100);
$("#lblSize").html(iSize + " GB");
} else {
iSize = (Math.round((iSize / 1024) * 100) / 100);
$("#lblSize").html(iSize + " MB");
}
} else {
iSize = (Math.round(iSize * 100) / 100);
$("#lblSize").html(iSize + " KB");
}
return (iSize < 4294967295); // 4GB is 4,294,967,295 bytes
}, "Your file size exceeded 4GB");
}
};
$(D).ready(function ($) {
JQUERY4U.UTIL.setupFormValidation();
});
})(jQuery, window, document);
如何在IE浏览器中制作IE文件大小的行为? 我的IE版本是11但是我把它设置为10模式。
答案 0 :(得分:0)
旧版本的Internet Explorer尚未实现用于文件上载的API,并且无法访问文件属性。它首先将文件上传到服务器,然后访问其属性。
因此,首先将图像发送到服务器,然后检查大小。在现代浏览器中,他们已经实现了用于上传文件的API,他们可以在将文件发送到服务器之前访问要上载的文件的属性。
在最新版本的Intertet资源管理器中,您不必遇到问题。