打开网络中的文件不起作用

时间:2014-01-25 23:44:47

标签: javascript

我在网络计算机上安装了WAMP。我有一个带文件链接的表,因为人们可以直接从网页打开这些文件。 这些文件位于另一台服务器中,与WAMP位于同一网络中。 当用户单击链接时,会出现以下错误: “不允许加载本地资源:file:///networkdrive/directorie/file.xls”

我该如何解决这个问题?

我有这个:

<button type="button" onClick="openfile('networkdrive/ptlr/Sectorial/LRCD/Horários/Equipas Turno.xls')">botao</button>

<script>

function openfile(file) {

    window.location = "file:///" + file;

}

</script>

3 个答案:

答案 0 :(得分:0)

只需阅读错误:“不允许加载本地资源(...)”

或者在Firefox上我得到“从脚本拒绝”访问(...)。

看起来你正在寻找一种可以解决它的神奇解决方案,但不是,它与错误的描述完全相同:出于安全原因,你不允许这样做。

答案 1 :(得分:0)

问题在于您尝试让浏览器在本地驱动器上打开文件,而file:///本身以外的任何协议都不允许这样做。因此,您要做的是确保本地文件也可以通过服务器访问,或者也可以从file:///打开包含此脚本的网页。

首先打开http://jsbin.com/OYObEMA/1/并看到同样的错误,然后按CTRL + S并将其保存为单个HTML文件,然后打开该HTML文件,就可以看到这一点。 JSBin通过互联网打开,因此无权访问file:///协议,但本地(下载)的HTML文件可以访问它。

您可以采取的一种方式是提供用户需要转到的网址。因此,只需将<input>设置为用户需要访问的网址,然后提供说明“请将此网址复制到您的网址栏中以打开此文件”。这不是一种优雅的方式,但它会很有效。

答案 2 :(得分:0)

关于你对我最初评论的回答:当然,我明白了。这个问题不是字面意思,而是让你开始思考你实际尝试的内容!你混合不同的环境。

  1. 如果您的客户端应用程序能够使用该http扩展来加载和保存文件,则需要使用webdav,或者
  2. 您必须执行从IT中间部分已知的旧方案,这仍然是MS-Windows系统的典型方案:提供通过http下载的文件并添加额外的上传服务(这将给您带来版本痛苦),或
  3. 通过相同的协议(网络共享)提供您的网页,以便在客户端打开它作为本地文件,从那时起 允许打开其中引用的其他本​​地文件网页。