在上传之前在IE中获取文件大小。 Gmail做到了 - 怎么样?

时间:2012-12-01 13:49:49

标签: javascript forms client-side-validation

我有一个文件上传表单。我想在实际上传文件之前验证文件大小。我可以在Chrome中执行此操作,但如何让它在IE中运行?

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

我在其他答案中看到了以下内容,但这需要用户给予特别许可,对吧?我想避免这种情况。此外,我不确定如何实际获取我需要的文件。

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

2 个答案:

答案 0 :(得分:2)

谷歌做后卫。

如果没有html5文件api,它使用adobe flash上​​传文件。

你可以使用类似的东西来获得crossbrowser兼容性:https://github.com/valums/file-uploader

答案 1 :(得分:0)

如果您想使用ActiveXObject,请输入正确的代码:

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