6

我有这样的文件输入设置

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

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

(defpage [:post "/upload"] {:keys [book]} (println book))

book 似乎只是上传文件的标题字符串,而不是文件本身。我如何获取文件?

4

2 回答 2

4

根据这个线程(见克里斯格兰杰的第二篇文章):

你可以使用类似的东西:

(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):

希望这可以帮助。

于 2012-02-09T01:06:44.407 回答
2

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

于 2012-07-30T15:08:10.537 回答