在我的应用程序中,我想打开客户端机器上存在的文件。我创建了两个应用程序:桌面和Web应用程序。当用户安装桌面应用程序时,有一些文件被复制到其安装路径,我想通过JavaScript从我的Web应用程序打开这些文件。
在我的应用程序中,我想打开客户端机器上存在的文件。我创建了两个应用程序:桌面和Web应用程序。当用户安装桌面应用程序时,有一些文件被复制到其安装路径,我想通过JavaScript从我的Web应用程序打开这些文件。
出于安全原因,浏览器与主机系统隔离(沙箱化)。
除了沙箱内的文件(例如cookie和缓存),浏览器访问本地文件的唯一途径是用户明确使用的HTML文件控件。
不幸的是,JavaScript无法访问客户端的文件结构。但你可以考虑在你的Web应用中使用类似Adobe AIR的工具。
http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html
浏览器已经针对这种情况进行了沙箱处理。如果您可以使用JavaScript打开自己的文件,那么谁能阻止我使用JavaScript打开您的文件呢。
解决此问题的常规方法是使用ActiveX组件并通过JavaScript与其交互。但这将限制您只能在IE中使用。
这个怎么样?
<script>
var oRequest;
if(document.all) {
// Internet Explorer
oRequest = new ActiveXObject("Microsoft.XMLHTTP")
}
else {
// Mozilla
oRequest = new XMLHttpRequest();
}
oRequest.open("GET", "file:///C:/myLocalFile.txt", false);
oRequest.send(null);
textToBeWritten = oRequest.responseText;
document.write(textToBeWritten);
</script>