Как вы принимаете загрузку файлов в noir - PullRequest
6 голосов
/ 08 февраля 2012

У меня есть настройки ввода файла, такие как

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

Моя конечная точка загрузки выглядит следующим образом.

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

книга выглядит просто строкой заголовка файла, который был загружен, а не самого файла. Как мне получить файл?

Ответы [ 2 ]

4 голосов
/ 09 февраля 2012

Согласно этой теме (см. Второе сообщение Криса Грейнджера):

вы можете использовать что-то вроде:

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

Вот суть этой темы:

с примечанием (снова от Криса), что вам нужно, чтобы Leiningen 1.6.1.1+ не наткнулся на ошибку.

Вы можете увидеть похожую вещь (хотя для Amazon S3) здесь:

Надеюсь, это поможет.

2 голосов
/ 30 июля 2012

Я думаю, вы хорошо принимаете; Я полагаю, что вы пишете неправильно. Попробуйте form-to {:enctype "multipart/form-data"}, или из оболочки curl --form book=@/home/me/Penguins.jpg http://localhost:8080/Upload

...