我目前正在構建一個Clojure數據庫支持的網站上的一個Luminus + h2框架。我在上工作文件上傳目前,和卡住在實際上點檢索文件。雖然我不能完全肯定這是接近情況的最佳辦法,這裏是我迄今所做:Clojure文件響應
我,讓我上傳文件的路徑。是那些獲得上傳的文件複製到/資源/公/文件夾我的項目裏面:
(io/copy actual-file (io/file "resources" "public" "Files" file-name))
此外,我保存每個文件的文件名時創建的數據庫表內並使用SQL進行操縱。
然後我有一個新的路線,顯示所有已上傳爲鏈接(通過訪問數據庫)的文件。在後端,鏈接將頁面指向一個新的路由「/ file /:file-name」,其中調用了文件響應函數。我希望這些鏈接可以用作文件的「下載」。
於這個工作我第一次嘗試,我的所有文件複製到我的C:/ AllFiles文件夾,這樣做:
(defn serve-file [file-name]
(file-response (str (files-path) File/separator file-name)))
其中文件路徑是:
(defn files-path [] "/AllFiles")
這實際上是爲我工作。但是,我希望我使用的文件是來自我的特定項目目錄中的文件,而不必輸入整個路徑(也就是說,使其可以在〜/ Project-Name/resources /公共/文件「)。
出於某種原因,我似乎無法獲得文件的響應像這樣的工作。
感謝您的幫助。
您能告訴我們更多的代碼嗎? – lispHK01
@ lispHK01等什麼零件?如果可以的話,可以使用[MCVE](https://stackoverflow.com/help/mcve) – Logan
。你遇到了什麼錯誤? (這個錯誤是否顯示在瀏覽器中?)另外,當你說「沒有我輸入整個路徑」時,你是什麼意思? – lispHK01