在IE中获取图像文件大小

时间:2013-01-31 06:04:23

标签: php javascript jquery

  

可能重复:
  How to get file size from clientside without using activex in javascript?

我在我的脚本中使用最大大小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中使用一些解决方案。

4 个答案:

答案 0 :(得分:0)

尝试以下代码

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

了解更多

How to get file size from clientside without using activex in javascript?

https://gist.github.com/3347948

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Here

考虑这个例子
<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

答案 3 :(得分:0)

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

<强>原因/详情 你不能在任何IE版本中获得IE 9.0的图像/文件大小,甚至IE 10.0中部分支持HTML文件API Check this

<强>研究

以下是使用以下代码

的调试信息IE vs Chrome
var file = document.getElementById('image').files[0];
console.log(file);

<强>铬 铬 webkitRelativePath:“”, lastModifiedDate:Wed Feb 08 2012 12:57:57 GMT + 0500(巴基斯坦标准时间), 名称:“1.jpg”, 输入:“image / jpeg”, 大小:715285 ...... }

IE 9.0 SCRIPT5007:无法获取属性'0'的值:object为null或undefined