我们都知道用IE的方法读取文件路径会读取到fakepath,这是Microsoft为了网络安全而做的设定。
其实这很傻,很多方法都可以绕开这种设定。以下是JavaScript下的实现方法:
function ieFileRead(){
var READYSTATE_COMPLETE = 4;
var OLECMDID_COPY = 12;
var OLECMDID_PASTE = 13;
var OLECMDID_SELECTALL = 0x11;
var OLECMDEXECOPT_DODEFAULT = 0;
var ie, body, dialog, fname, text;
ie = WScript.CreateObject("InternetExplorer.Application");
ie.Navigate("about:blank");
body = ie.document.getElementsByTagName("body")[0];
body.innerHTML = "<input type=\'file\' id=\'fileDialog\'><textarea id=\'text\'></textarea>";
while (ie.Busy || ie.ReadyState !== READYSTATE_COMPLETE) {
WScript.sleep(10);
}
dialog = ie.document.all.fileDialog;
dialog.click();
fname = dialog.value;
if (fname === "") {
return("Please select a file...");
} else {
dialog.focus();
ie.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT);
ie.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT);
text = ie.document.all.text;
text.focus();
ie.ExecWB(OLECMDID_PASTE, OLECMDEXECOPT_DODEFAULT);
fname = text.value;
return(fname);
}
text = undefined;
dialog = undefined;
body = undefined;
ie.Quit();
ie = undefined;
}
本文介绍了一种在Internet Explorer浏览器中绕过fakepath限制,通过JavaScript脚本获取文件真实路径的方法。此方法利用了IE特有的API进行文件选择与复制粘贴操作,实现了对文件路径的准确读取。
1532

被折叠的 条评论
为什么被折叠?



