Javascript 上传前在IE中获取文件大小。Gmail是怎么做到的?

Javascript 上传前在IE中获取文件大小。Gmail是怎么做到的?,javascript,forms,client-side-validation,Javascript,Forms,Client Side Validation,我有一张文件上传表。我想在实际上传文件之前验证文件大小。我可以在Chrome中实现这一点,但如何让它在IE中工作呢 请注意,这是gmail可以做到的。当我将文件拖到文件附件区域时,它会立即告诉我文件的大小。我在IE9和IE8中试过这个。它还可以告诉我文件大小,即使我断开了与互联网的连接,所以它不像是先上传文件。我(据我记忆所及)没有给任何特殊的activeX权限或任何东西 我已经在其他答案中看到了下面的内容,但这需要用户给予特殊许可,对吗?我想避免这样。另外,我不确定如何实际获取此工作所需的文件

我有一张文件上传表。我想在实际上传文件之前验证文件大小。我可以在Chrome中实现这一点,但如何让它在IE中工作呢

请注意,这是gmail可以做到的。当我将文件拖到文件附件区域时,它会立即告诉我文件的大小。我在IE9和IE8中试过这个。它还可以告诉我文件大小,即使我断开了与互联网的连接,所以它不像是先上传文件。我(据我记忆所及)没有给任何特殊的activeX权限或任何东西

我已经在其他答案中看到了下面的内容,但这需要用户给予特殊许可,对吗?我想避免这样。另外,我不确定如何实际获取此工作所需的文件

   var oas = new ActiveXObject("Scripting.FileSystemObject");
   var e = oas.getFile(file.value);

谷歌做这件事有一个退路

如果没有html5文件api,它将使用adobe flash上载文件


您可以使用类似这样的方法来获得交叉浏览器兼容性:

如果要使用
ActiveXObject
,正确的代码是:

var fso = new ActiveXObject("Scripting.FileSystemObject"),
    file = fso.GetFile(file_path),
    size = file.size;

是什么让你认为这需要特殊许可?我知道的是IE不支持HTML5文件API,它允许在其他浏览器上使用。也许谷歌在IE上使用Flash?@jan:上面的第一行给了我一个错误:“自动化服务器无法创建对象”,我认为这与权限有关。还有我读到的关于activeX的东西。你不这么认为吗?是的,他们一定在用闪光灯。我只是试了一下:当我禁用flash时,Gmail无法告诉我文件大小。关于flash,你是对的。如果我禁用flash,它就不能告诉我文件大小。