2012-05-30 60 views
0

我是Java Servlets的新手,但希望將位於我的服務器上的文件寫入客戶端的文件系統。例如,如果客戶說要寫入「C:\ Users \ Dan \ Desktop」,我該如何寫一個文件到該目的地?我有一個擴展HttpServlet的類 - 如果有人能指出我正確的方向,我將不勝感激。將文件寫入客戶端的文件系統

+1

Servlet在哪裏運行? 「客戶」在哪裏運行? (這是什麼問題/問題/分離這是否固有原因?)最好只提供一個文件,讓「客戶端」(如「瀏覽器」)保存/打開它所需的... – 2012-05-30 23:35:09

+3

作爲一個網站服務器,你不能只是決定寫一個文件到瀏覽器硬盤上的某個位置。那會是一個安全漏洞,你可以駕駛卡車通過。 –

回答

1

它的做法通常是向客戶端返回一個數據流,該數據流將提示瀏覽器保存文件。但是,服務器不能規定將要保存的位置文件。

要做到這一點包括在你的servlet響應

Content-Type: application/octet-stream 
Content-Disposition: filename=[your server recommended file name]; 

頭。請注意,用戶仍然可以在大多數瀏覽器中覆蓋推薦的文件名,位置將由瀏覽器(默認用戶下載目錄或任何用戶在提示時選擇的內容)確定。

+0

感謝您的幫助,每個人! – user1190650