2012-01-18 164 views
2

是否可以通過html在本地驅動器上打開文件?我嘗試的方法如下: <a href='filename.ext'>link</a>對於與腳本位於同一地圖中的文件。這可以工作,但它僅下載文件(我使用mdb文件,因此它不會在網頁瀏覽器中打開,如圖片)。通過鏈接打開文件

當我鏈接到即<a href='file://c:\file.ext'>link</a>或只是沒有文件://沒有任何反應。是否可以正確鏈接到文件打開它們,而不是隻下載它們?

在此先感謝!

+0

不可能,除非鏈接文件放置在本地磁盤上。如果你想從用戶那裏請求一個文件,爲了表單提交,使用''。 – 2012-01-18 11:08:05

+1

如果是這樣,它會讓我訪問您本地驅動器上的大量信息,您不希望我看到,所以「不,這不是」 – 2012-01-18 11:08:47

+0

這是可能的,但有限制。 – 2012-01-18 13:00:10

回答

0

編號'打開'與'下載'有關的是由服務器返回的Content-Disposition HTTP標頭。當您打開本地文件時,它不是來自Web服務器,因此您無法更改標頭/它們不存在。

+0

可能還有其他選項可以打開文件嗎?或者至少打開文件夾所在的文件夾或? – ProCx 2012-01-18 11:15:01

+0

我的建議是不要這樣做。鏈接到來自網站的本地文件,故事的結尾是一個壞主意。你怎麼知道文件存在?你怎麼知道它在哪裏?事實上,這不可能暗示它不是一個好主意。 – Joe 2012-01-18 11:16:24

+0

我得到它與我的網頁瀏覽器的選項工作..即當你在鉻下載文件你可以選擇總是直接打開來自特定擴展名的文件。由於安全的外殼,只有這個.bat文件被下載。這意味着這個批處理文件可以執行本地文件。 – ProCx 2012-01-18 11:49:32

0

如果推薦的HTML文檔位於本地驅動器上,相對URL將引用本地文件,例如, <a href='filename.ext'>link</a>將引用同一文件夾中的文件。然而,瀏覽器會得到指定媒體類型(例如text/html或image/gif)的HTTP標題,因此他們需要應用一些啓發式方法來猜測如何處理它,或者在系統中應用綁定,或者只是提供一個「另存爲」對話框(瀏覽器在不知道或猜測媒體類型的情況下可以做的唯一一件事)。

但是,通常情況下,只要您使用常見的文件名後綴(如.html或.gif),就會起作用。

如果引用文檔位於服務器上,則情況會有所不同,但您理論上可以使用file:scheme引用本地文件,但其效果完全取決於系統。示例<a href='file://c:\file.ext'>link</a>在語法上格式錯誤(儘管某些瀏覽器可能會接受它),因爲URL中不允許使用反斜槓「\」。使用<a href='file://c:/file.ext'>link</a>原則上可以工作,並且它在Web早期工作,以防用戶的系統碰巧有一個可以用路徑名c:/file.ext訪問的文件(可能映射到c:\ file。由系統分機)。

但瀏覽器通常停止支持file:scheme,這大概是出於假定的安全原因。當使用file:URL時,當然沒有信息直接發送到任何服務器,但是人們認爲這可能是間接的安全威脅。此外,從一開始,文件:URL的用處非常有限。 (有時在本地網絡中使用它們鏈接到不作爲HTTP服務器的本地網絡服務器上的文件。)

1

如果它位於您的計算機上,則有可能。

您需要做的是註冊一個帶有您想要打開的文件擴展名的協議。 在你的情況下,.mdb將是MS Access數據庫文件。

如果你想點擊瀏覽器中的一個鏈接,打開MS Access中的文件,那麼你必須做到以下幾點:

<a href="your_protocol://c:\path\to\file.mdb">Open File</a> 

然後,你必須註冊與您的電腦「your_protocol」協議。

REGEDIT4 

[HKEY_CLASSES_ROOT\your_protocol] 
@="URL:your_protocol Protocol" 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\your_protocol\shell] 

[HKEY_CLASSES_ROOT\your_protocol\shell\open] 

[HKEY_CLASSES_ROOT\your_protocol\shell\open\command] 
@="\"C:\\Program Files\\Application\\program.exe\" \"%1\"" 

用您選擇的任意名稱替換「your_protocol」,編輯註冊表並鏈接您的文件,如示例中所示。