我使用JSF 2.0和tomcat 7.0。要下載我使用的文件org.apache.commons.io.FileUtils.copyURLToFile(url, new File("file.xls"));
如何指定下載文件的目的地
如何指示默認目標,因爲現在文件保存在工作區目錄中?我想下載我的文件到所有用戶的默認下載目錄。例如,在Windows系統中,所有下載的文件都保存在「下載」中。感謝:)
我使用JSF 2.0和tomcat 7.0。要下載我使用的文件org.apache.commons.io.FileUtils.copyURLToFile(url, new File("file.xls"));
如何指定下載文件的目的地
如何指示默認目標,因爲現在文件保存在工作區目錄中?我想下載我的文件到所有用戶的默認下載目錄。例如,在Windows系統中,所有下載的文件都保存在「下載」中。感謝:)
只需在File
構造函數中指定所需的目標文件夾即可。
File downloads = new File("/path/to/download/folder");
// ...
FileUtils.copyURLToFile(url, new File(downloads, "file.xls"));
請注意,這個問題與JSF或Tomcat完全無關。在普通的vanilla Java應用程序中這樣做會遇到完全相同的問題。
請注意,我認爲你非常清楚,這行代碼絕對不會將文件從網絡服務器發送到任意網頁瀏覽器。相反,它將文件保存在網絡服務器自己的磁盤文件系統中。當網頁瀏覽器碰巧與網頁瀏覽器在物理上相同的機器上運行時,您只會遇到在「客戶端」保存的文件的「效應」(並且沒有意識到這實際上並沒有在現實世界中發生)。
謝謝,我寧願寫關於寫veks4j的smth。實際上,我更改了我的下載操作以供primefaces提供下載。 – Piotrek
+1好問題。爲什麼這麼複雜?不能讓用戶指定下載位置。 – vels4j
解決方法是1.搜索如何在java中查找默認瀏覽器2.檢查如何獲取該瀏覽器的下載文件夾位置。這裏是一個鏈接http://unlockforus.blogspot.in/2008/07/how-to-find-or-specify-download.html – vels4j
順便說一下你的代碼看起來,你應該在創建新的'文件對象:'新文件(pathToDownload +「file.xls」)'。嘗試使用基本路徑(例如Windows中的「C:\\ downloads \\」或un Unix/Linux中的「/ home/myUser/downloads」)。 –