你如何接受黑色文件上传

时间:2012-02-08 02:23:05

标签: clojure noir

我有像这样的文件输入设置

[:p "Upload a book"]
      (form-to [:post "/upload"]
               (file-upload :book)
               (submit-button "Upload"))

我的上传端点看起来像这样。

(defpage [:post "/upload"] {:keys [book]} (println book))
本书似乎只是上传文件的标题字符串而不是文件本身。我如何获取文件?

2 个答案:

答案 0 :(得分:4)

根据这个帖子(见Chris Granger的第二篇文章):

你可以使用类似的东西:

(defpage [:post "upload"] {:keys [myFile]}
  (println myFile) ;; see all the things the file contains
  (io/copy (io/file (:tempfile myFile)) (io/file "uploads/some-new-name"))) 

以下是此主题的要点:

带着一张便条(再次来自Chris)你需要Leiningen 1.6.1.1+才能遇到错误。

你可以在这里看到类似的东西(虽然对于Amazon S3):

希望这有帮助。

答案 1 :(得分:2)

我认为你接受罚款;我相信你发错了。试试form-to {:enctype "multipart/form-data"},或来自shell curl --form book=@/home/me/Penguins.jpg http://localhost:8080/Upload