2016-08-04 16 views
0

是否可以使用header()函數或其他php函數將文件傳遞到瀏覽器本地?使用header()傳遞文件到瀏覽器php

我目前使用的是Chrome瀏覽器。我安裝了Office Editing for Docs擴展程序,它基本上允許我通過將完整的目錄和文件名稱傳遞到Chrome的URL地址欄來將Word docx文件本地打開到我的Chrome瀏覽器。這實質上是在Chrome中打開Word文件。我想完成這個任務在php

我已經嘗試了以下但沒有運氣。

header('Location: file://c:\users\jbloggs\desktop\test.docx'); 

我知道header()函數主要用於重定向到一個網頁

header('Location: http://www.google.com'); 

任何幫助非常讚賞。

+1

PHP是服務器端,不能在客戶端打開文件。 –

+3

你需要養成[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)的習慣,它可以幫助你解決你的問題。你將獲得積分,並鼓勵其他人爲你提供幫助。 –

+1

問題是:*爲什麼?*和你有一個Web服務器/ PHP安裝?你真的想在這裏做什麼? –

回答

1

它不以這種方式工作,因爲您試圖從遠程服務器重定向到本地文件路徑。由於安全考慮,Chrome不接受此操作。請注意,您的Web服務器是否在同一臺物理機上運行並不重要,它被視爲與本地文件系統不同的服務器。您可以使用普通的HTML但是完成這項任務:

<a href="file://c:\users\jbloggs\desktop\test.docx">Document</a> 

如果您保存這一個靜態的HTML文件,並在瀏覽器中,你應該在點擊被重定向到文件打開它。如果您想要直接重定向,請使用JavaScript window.location但是,您不能從HTTP服務器提供文件,如上所述。

如果你想這樣做,你也必須從你的服務器提供.docx文件,把它作爲靜態內容加入,然後通過HTTP連接到它。

希望這會有所幫助!

+0

但爲什麼PHP必須知道?它只需要將該值傳遞給瀏覽器。它可以愉快地重定向到'磁鐵:'URL和什麼,它當然沒有原生支持? – Siguza

+0

是的我過於簡單化,並使我的回答錯誤。看我的編輯。我實際上不確定是否完全不可能通過PHP進行重定向,但這絕對不是最佳做法。最佳做法是從服務器上爲.docx文件提供服務,而不是本地文件系統。 – Peter

+0

我完全同意這一點。我只是想知道爲什麼其他URL工作,但不是file:// ones。它是有道理的,但這將是一個瀏覽器安全功能。 – Siguza