Html 从firefox打开硬盘上的直接文件(文件://)
我有一个为自己创建的小型php系统。该系统包含一些.doc和.docx文件文档。我希望能够从浏览器直接打开它们,而不是下载它们 我创建了一个链接:Html 从firefox打开硬盘上的直接文件(文件://),html,security,firefox,web-applications,Html,Security,Firefox,Web Applications,我有一个为自己创建的小型php系统。该系统包含一些.doc和.docx文件文档。我希望能够从浏览器直接打开它们,而不是下载它们 我创建了一个链接: 但是FireFox没有打开链接。而href=”http://localhost/myfile.docx“工作正常-我可以下载文件 你知道我该怎么做吗? 可能会更改firfox选项/安全设置中的某些内容? 如果你在做,有没有机会在IE8中做呢 谢谢。您使用了哪种语法?例如c:/path/to/file.ext的正确语法应该是file:///c:/pa
但是FireFox没有打开链接。而href=”http://localhost/myfile.docx“
工作正常-我可以下载文件
你知道我该怎么做吗?
可能会更改firfox选项/安全设置中的某些内容?
如果你在做,有没有机会在IE8中做呢
谢谢。您使用了哪种语法?例如c:/path/to/file.ext的正确语法应该是file:///c:/path/to/file.ext
编辑:不再相关,因为OP已将其问题编辑为包含语法
请注意,如果文件存储在服务器机器上,而服务器机器又是与客户端机器(webbrowser运行的地方)物理上不同的机器,则这根本不起作用。不幸的是,由于安全限制,无法访问Firefox中的本地文件。据我所知(我在这里反复询问过自己),甚至不可能通过配置设置或类似设置来允许选择站点
有一个解决方法(本质上不安全,需要小心处理),您可以注册一个自定义协议,如中所述 虽然我仍然认为这是一个编程问题,但这里给出了答案:
Firefox和IE8都支持
下面是一些对你有效的例子
Windows系统,指的是相同的
文件c:\WINDOWS\clock.avi
file://localhost/c|/WINDOWS/clock.avi
file:///c|/WINDOWS/clock.avi
file://localhost/c:/WINDOWS/clock.avi
file:///c:/WINDOWS/clock.avi
而最后一个是最明显和最重要的
人类可读,第一个是
最完整和正确的一个
显然(来自同一个url):
Mozilla浏览器拒绝跟踪使用HTTP协议获取的页面上的文件URL
但是:
可以将Mozilla浏览器配置为覆盖此安全限制,如Mozillazine的“”中所述
当试图访问项目外部的文件时,安全限制是一个大问题。我建议(如果您使用的是IIS 7+),在C驱动器上包含文档的文件夹中创建一个虚拟目录。然后,您可以使用VP名称从C驱动器访问您的文件,并且主机/本地主机将包含在您的url中,而不是“file:///”
但是,如果您使用的是IIS Express,则必须通过更新“applicationhost.config”
文件手动添加虚拟目录。查看此链接,了解有关如何设置的更多详细信息
希望这能有所帮助。我使用了symlink for windows,通过创建symlink将该文件添加到了我的资源文件夹中。
如何为windows创建此处显示的符号链接
这对我来说很有效,但我也遇到了同样的问题。
干杯 我通过Firefox(51.0)和Internet Explorer(11)打开本地上传文件的工作代码
另存为open.php
“pfad”是本地Webroot下面的路径(在我的例子中是customer文件夹)
当然,“文件”是我想要打开的文件
我这样称呼它:……href=“open.php?pfad=&file=”
如果两个参数都是URL编码的这是一个编程问题吗???在我看来,你选择了完全错误的技术来做你想做的事情。尝试一些更适合桌面开发的东西。我来这里是因为同样的问题,因为直到最近我才能够完成这里的要求,解决方案是按照本页上的说明进行:简而言之,您需要创建一个user.js文件,并进行一些配置更改。我认为这些策略非常危险,因此不能使用about:config设置它们。好吧,这是几个月前才出现的情况,在上周我尝试了,现在我得到了与chrome相同的本地文件行为…即你可以在一个内置的文件浏览器的选项卡中浏览文件,如果你点击它们,文件将被下载。为什么会有人想下载一个本地文件?!这些安全设置通常用于内联网的优势,人们习惯于使用本地/网络文件系统和web编程,因为它们简单、熟悉,我们正试图慢慢地吸引人们。因此,如果有人想办法解决这个最新的“有用”更新,请告诉我们。我更新了我的问题,以表明我使用了以下语法:file:///c:/path/to/file.ext
。它在这里工作正常。你的问题在别的地方。要么文件不在您认为的位置,要么Firefox实际上正在用它进行阻塞。如果你能确保最后一个是这样的话,考虑搬到SuffuServer,因为这与编程无关。
$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));