2010-01-27 82 views
6

我有一個爲自己創建的小型php系統。該系統包含一些.doc和.docx文件文件。我希望能夠直接從瀏覽器打開它們,而不是下載它們。從firefox打開硬盤上的直接文件(file:///)

我創建了一個鏈接: <a href="file:///c:/mysite/myfile.docx">myfile</a> 但是FireFox沒有打開鏈接。雖然href="http://localhost/myfile.docx"工作正常 - 它使我可以下載文件。

任何想法我怎麼能做到這一點? 也許改變firfox選項/安全設置的東西? 如果你在這裏,是否有機會在IE8中做到這一點?

謝謝。

+0

這是一個編程問題? ?? – 2010-01-27 16:34:30

+0

聽起來像你選擇絕對錯誤的技術來做你想做的事。嘗試一些更適合桌面開發的東西。 – NotMe 2010-01-27 16:55:08

+0

我在這裏是因爲同一個問題,因爲直到最近我才能夠做到這裏所要求的,解決方案是遵循此頁上的說明:http://kb.mozillazine.org/Links_to_local_pages_don't_work#Disabling_the_Security_Check總之,您需要創建一個user.js文件,並對其進行一些配置更改。我認爲這些政策足夠危險,您無法使用about:config進行設置。那是幾個月前纔出現的情況,在上個星期我嘗試了,現在我得到了與chrome相同的本地文件行爲...... – Quaternion 2015-10-01 16:18:09

回答

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

雖然最後一個是最明顯的,並且 是可讀的,但第一個是最完整和最正確的一個。

顯然(來自同一個URL):

Mozilla瀏覽器拒絕跟隨一個頁面,它已經與HTTP協議拿來文件的URL。

但:

Mozilla瀏覽器可以被配置爲MozillaZine的的 「Links to Local Pages Don't Work」 詳細覆蓋此安全限制。

1

你使用了哪種語法?例如正確的語法 c:/path/to/file.ext應該是 file:///c:/path/to/file.ext編輯:不再相關,因爲OP已編輯他的問題,包括語法。

請注意,如果文件存儲在服務器機器上,而服務器機器本身不是機器,而是客戶端機器(運行Web瀏覽器的機器),則完全不起作用。

+0

我更新了我的問題,表明我使用了這種語法:'file:/// c:/ path/to/file.ext'。 – aviv 2010-01-27 16:40:20

+0

它在這裏工作正常。你的問題在別的地方。文件不在你認爲的位置,或者Firefox實際上阻止了這一點。如果你能確保最後的情況,考慮轉移到superuser.com,因爲這與編程無關。 – BalusC 2010-01-27 16:57:09

2

由於安全限制,無法不幸地訪問Firefox中的本地文件。據我所知(我已經多次在這裏問過),甚至不可能通過配置設置或類似的方式來允許選擇站點。

有一個解決方法(明顯不安全並且要小心處理),您可以註冊一個自定義協議,如this question中所述。

0

當您嘗試訪問項目之外的文件時,安全限制是一個大問題。我會推薦的(如果你使用的是IIS 7+),就是爲你的C盤上的文檔創建一個虛擬目錄。然後,您可以使用VP名稱從C驅動器訪問文件,主機/本地主機將包含在您的url中,而不是"file:///"

但是,如果您使用的是IIS Express,則必須通過更新"applicationhost.config"文件來手動添加虛擬目錄。看看這個鏈接關於如何設置的更多細節。

http://bhagirath-j-patel.blogspot.com/

希望這有助於。

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 = < my_path的> &文件= <the_file>」

其中兩個參數都進行了urlencoded