在IE中获取图像文件大小


Get Image File Size in IE

可能的重复项:
如何在不使用 javascript 中的 activex 的情况下从客户端获取文件大小?

我在我的脚本中使用最大大小为 1 GB 的图像上传,我需要在 javascript 中获取图像文件大小,所以我使用了以下脚本,

var file = document.getElementById('image').files[0];
if(file.size > 1048576){
    alert('image size is too big to upload');
}

此脚本在除IE8,9以外的所有浏览器中都可以正常工作。建议我一些在IE中工作的解决方案。

尝试下面的代码

var img = new Image();
img.src = sYourFilePath;
var iSize = img.fileSize;

阅读更多

如何在不使用 javascript 中的 activex 的情况下从客户端获取文件大小?

https://gist.github.com/3347948

似乎找不到参考链接,但 ie8 和 ie8 不支持 html5 文件 API,这意味着您无法从那里获取文件大小。另一种方法是在服务器端执行此处理,如果大小超过限制,则快速失败。

从这里考虑这个例子

<html>
<head>
<script>
function getSize()
{
    var myFSO = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = document.upload.file.value;
    var thefile = myFSO.getFile(filepath);
    var size = thefile.size;
    alert(size + " bytes");
}
</script>
</head>
<body>
<form name="upload">
<input type="file" name="file">
<input type="button" value="Size?" onClick="getSize();">
</form>
</body>
</html>

但是您需要在IE安全设置中允许ActiveX。

要求要在客户端计算文件/图像大小,浏览器应支持 HTML5 文件 API

原因/细节您无法在IE 9.0之前的任何IE版本中获取图像/文件大小,即使在IE 10.0中部分支持HTML文件API,请检查此内容

研究

以下是使用以下代码的调试信息 IE 与 Chrome

var file = document.getElementById('image').files[0];
console.log(file);

铬webkitRelativePath: ",最后修改日期: 星期三 Feb 08 2012 12:57:57 GMT+0500 (巴基斯坦标准时间),名称:"1.jpg",类型:"图像/JPEG",尺寸: 715285...}

IE 9.0 浏览器SCRIPT5007:无法获取属性"0"的值:对象为 null 或未定义