使用JavaScript在客户端打开文件

3

在我的应用程序中,我想打开客户端机器上存在的文件。我创建了两个应用程序:桌面和Web应用程序。当用户安装桌面应用程序时,有一些文件被复制到其安装路径,我想通过JavaScript从我的Web应用程序打开这些文件。


JavaScript 在浏览器中是沙盒化的,这是不可能的。 - Lazarus
@Lazarus 几年前还不可能,但现在一些浏览器已经支持 文件系统访问 API - Anderson Green
5个回答

4

出于安全原因,浏览器与主机系统隔离(沙箱化)。

除了沙箱内的文件(例如cookie和缓存),浏览器访问本地文件的唯一途径是用户明确使用的HTML文件控件。


0

0

浏览器已经针对这种情况进行了沙箱处理。如果您可以使用JavaScript打开自己的文件,那么谁能阻止我使用JavaScript打开您的文件呢。

解决此问题的常规方法是使用ActiveX组件并通过JavaScript与其交互。但这将限制您只能在IE中使用。


0
正如Oded所提到的,出于安全考虑,这是不可能的。话虽如此,如果客户端已经安装了应用程序,则可以向其传递参数并执行该应用程序,在这种情况下,您将向应用程序传递文件的URI,以便在他们的机器上打开它,但我无法在浏览器中看到它发生。

-1

这个怎么样?

<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>

1
你是否尝试从不在同一台计算机上的位置运行此程序? - Oded

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接