1

可能重复:
如何在不使用 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 中工作的一些解决方案。

4

4 回答 4

0

从这里考虑这个例子

<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 。

于 2013-01-31T06:17:56.803 回答
0

试试下面的代码

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

阅读更多

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

https://gist.github.com/3347948

于 2013-01-31T06:06:38.147 回答
0

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

于 2013-01-31T06:09:27.293 回答
0

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

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

研究

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

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

Chrome Chrome webkitRelativePath: "", lastModifiedDate: Wed Feb 08 2012 12:57:57 GMT+0500 (Pakistan Standard Time), name: "1.jpg", type: "image/jpeg", size: 715285…}

IE 9.0 SCRIPT5007:无法获取属性“0”的值:对象为空或未定义

于 2013-01-31T07:39:18.390 回答