|
在FireFox、Chrome浏览器中可以根据document.getElementById(“id_file”).files[0].size 获取上传文件的大小(字节数),而IE浏览器中不支持该属性,只能借助<img>标签的dynsrc属性,来间接实现获取文件的大小(但需要同意ActiveX控件的运行,但是不会引起上面的不友好、不安全的提示)
要求:
1.如果浏览器安全设置很高,就是(不同意ActiveX控件的运行)
2.这个文件大小判断逻辑必须在前台js操作,不能再后台处理
该如何解决。。。。。
我看了挺多,没看到合适的解决办法,求助。。。。。。。。。。
前台:
<img id="tempimg" dynsrc="" src="" alt="" style="display:none" />
<INPUT id="FileBrowser" style="WIDTH:96%" class="whitebox" type="file" runat="server" NAME="FileBrowser">
js 代码:
function CheckFileSize()
{
var btnName = event.srcElement.name;
if(btnName == "Button1")
{
var browserCfg = {};
var ua = window.navigator.userAgent;
if ((ua.indexOf("MSIE") >= 1 && ua.toLowerCase().indexOf("Trident") > -1) || (ua.toLowerCase().indexOf("trident") > -1 && ua.indexOf("rv") > -1)) {
browserCfg.ie = true;
} else if (ua.indexOf("Firefox") >= 1) {
browserCfg.firefox = true;
} else if (ua.indexOf("Chrome") >= 1) {
browserCfg.chrome = true;
}
var obj_file = document.getElementById("FileBrowser");
if(obj_file.value==""){
alert("请先选择上传文件");
return;
}
var filesize = 0;
if(browserCfg.firefox || browserCfg.chrome ){
filesize = obj_file.files[0].size;
}
else if (browserCfg.ie) {
var obj_img = document.getElementById('tempimg');
obj_img.dynsrc = obj_file.value;//这里的问题
filesize = obj_img.fileSize;
alert(filesize);
}
//------------------------
if ((filesize/ 1024) > 102)
{
alert("上传的附件文件不能超过10M!!!");
return false;
}
浏览器安全设置特别高时,出现这个错误
[img]file:///C:/Users/madongfeng/AppData/Roaming/Tencent/Users/1154275063/QQ/WinTemp/RichOle/%7BS[NQS9$HI(%7BI]%609)%7B$HO4P.png[/img]
|
|