无法从ActiveXObject调用getFile()

时间:2013-07-31 11:15:43

标签: javascript internet-explorer

嗨我创建了文件上传类的东西,其中我想提供上传文件   大小验证我写了以下代码在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");

这里myproblem是myFSO.getFile()不工作。警告不会提示

3 个答案:

答案 0 :(得分:2)

  

这里我的问题是myFSO.getFile()无法正常工作

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

Internet区域内容根本不允许通过FileSystemObject这样的开放式API访问本地文件系统。 (在IE中使用不安全的脚本 ActiveX控件的唯一方法是将页面放在TRUSTED安全区域中,并将该区域的安全滑块降低到。)

HTML5文件API 显着更加锁定,只允许JavaScript访问用户选择的有限文件集。

答案 1 :(得分:0)

var FSO = new ActiveXObject("Scripting.FileSystemObject");
FSO.GetFile("C:\\Windows\\notepad.exe")

答案 2 :(得分:-1)

如果getFile()产生fakePath没有问题,尝试从路径获取fileName并将其提供给getFile(),其余部分正常工作

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

警报显示上传的文件大小