我有一个为自己创建的小型php系统。该系统包含一些.doc和.docx文件。我希望能够直接从浏览器打开它们而不是下载它们。
我创建了一个链接:
<a href="file:///c:/mysite/myfile.docx">myfile</a>
但是FireFox没有打开链接。虽然href="http://localhost/myfile.docx"
工作正常 - 它可以让我下载文件。
任何想法我该怎么做? 也许在firfox选项/安全设置中改变一些东西? 如果你在,它有没有机会在IE8中做到这一点?
感谢。
答案 0 :(得分:5)
虽然我仍然认为这是一个编程问题,但在这里得到了回答: https://superuser.com/questions/103026/open-a-direct-file-on-the-hard-drive-from-firefox-file
Firefox和IE8都支持File URI scheme。
以下是一些有效的示例 Windows系统,指的是相同的 文件c:\ WINDOWS \ clock.avi
文件://本地主机/ C | /WINDOWS/clock.avi
文件:/// C | /WINDOWS/clock.avi
文件://本地主机/ C:/WINDOWS/clock.avi
文件:/// C:/WINDOWS/clock.avi虽然最后一个是最明显的 人类可读,第一个是 最完整和正确的。
显然(来自同一个网址):
Mozilla浏览器拒绝在使用HTTP协议提取的网页上关注文件网址。
但:
Mozilla浏览器可以配置为覆盖此安全限制,详见Mozillazine的“Links to Local Pages Don't Work”。
答案 1 :(得分:2)
由于安全限制,无法在Firefox中访问本地文件。据我所知(我已经在这里反复询问过),甚至不可能通过配置设置或类似设置允许选择站点。
有一种解决方法(指责性不安全且需谨慎处理),您可以注册this question中概述的自定义协议。
答案 2 :(得分:1)
您使用了哪种语法?例如,正确的语法 编辑:不再相关,因为OP编辑了他的问题以包含语法。c:/path/to/file.ext
本来是file:///c:/path/to/file.ext
。
请注意,如果文件存储在服务器计算机上,而该计算机依次是与物理上不同的计算机,而不是客户端计算机(运行webbrowser的位置),则这根本不起作用。
答案 3 :(得分:1)
我使用symlink for windows通过创建符号链接将该文件添加到我的资源文件夹中。 如何为windows创建此处显示的符号链接 http://www.sevenforums.com/tutorials/278262-mklink-create-use-links-windows.html
同样的问题对我有用。 干杯!
答案 4 :(得分:0)
尝试访问项目外的文件时,安全限制是一个大问题。我建议(如果您使用的是IIS 7+),就是在包含C驱动器上的文档的文件夹中创建一个虚拟目录。然后,您可以使用VP名称从C驱动器访问您的文件,主机/ localhost将包含在您的网址而不是"file:///"
中。
但是,如果您使用的是IIS Express,则必须通过更新"applicationhost.config"
文件手动添加虚拟目录。请查看此链接,了解有关如何设置的详细信息。
http://bhagirath-j-patel.blogspot.com/
希望这有帮助。
答案 5 :(得分:0)
我的工作代码,通过Firefox(51.0)和实际的Internet Explorer(11)打开本地上传的文件。
$pfad = trim(strip_tags(stripslashes(urldecode($_REQUEST['pfad']))));
$datei = trim(strip_tags(stripslashes(urldecode($_REQUEST['file']))));
exec ('start c:\\WINDOWS\\system32\\explorer.exe /select /seperate /n, /e, '.str_replace('/','\\',$pfad).utf8_decode($datei));
保存为open.php
“pfad”是本地Webroot(在我的客户文件夹中)的路径 而“文件”当然是我要打开的文件。
我这样称呼:... href =“open.php?pfad =&lt; my_path&gt;&amp; file =&lt; the_file&gt;”
其中两个参数都是urlencoded