0

嗨,我创建了文件上传之类的东西,我想提供上传文件大小验证,我编写了以下代码在 chrome 和 firefox 中运行良好。

$('#file').change(function() {  
 fileSizeError = (this.files[0].size/(1024*1024) > 1) ? true:false;     
});

但是这段代码在 IE 中不起作用,我想用下面的方式实现同​​样的代码

        var myFSO = new ActiveXObject("Scripting.FileSystemObject");
            var filePath = $('#file')[0].value;
            var theFile = myFSO.getFile(filePath);
            alert('Rajaram');
            var size = theFile.size;
            alert(size + " bytes");

这里我的问题是 myFSO.getFile() 不工作。没有提示警报

4

3 回答 3

2

我的问题是 myFSO.getFile() 不起作用

感谢天堂!否则,任何使用 IE 浏览网站的人都会很快遇到很多麻烦,因为恶意网站会访问他们的文件。

FileSystemObjectInternet 区域内容根本不允许通过广泛开放的 API 访问本地文件系统。(在 IE 中使用Unsafe for Scripting ActiveX 控件的唯一方法是将页面放入 TRUSTED 安全区域并将该区域的安全滑块降低到Low。)

HTML5 文件 API更加锁定,仅允许 JavaScript 对用户选择的有限文件集进行受限访问。

于 2013-07-31T11:18:15.570 回答
0
var FSO = new ActiveXObject("Scripting.FileSystemObject");
FSO.GetFile("C:\\Windows\\notepad.exe")
于 2021-04-10T01:45:23.113 回答
-1

如果 getFile() 产生 fakePath 没有问题,尝试从路径中获取文件名并将其提供给 getFile(),其余的工作正常

var myFSO = new ActiveXObject("Scripting.FileSystemObject");
var fileName = ($('#file')[0].value).split('\\');
var fileDtls = myFSO.getFile(fileName[fileName.length-1]);
alert(fileDtls.size);

警报 显示上传的文件大小

于 2013-07-31T14:30:56.710 回答