2012-02-08 29 views
6

Tôi có một thiết lập tập tin đầu vào nhưLàm thế nào để bạn chấp nhận tập tin tải lên trong noir

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

endpoint upload của tôi này sau đó trông như thế này.

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

sách dường như chỉ là một chuỗi tiêu đề của tệp được tải lên chứ không phải chính tệp đó. Làm cách nào để tải tệp?

Trả lời

4

Theo chủ đề này (xem bài thứ hai của Chris Granger):

bạn có thể sử dụng một cái gì đó như:

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

Dưới đây là một ý chính từ chủ đề này:

với ghi chú (lần nữa từ Chris) mà bạn cần Leiningen 1.6.1.1+ không chạy vào lỗi.

Bạn có thể thấy một điều tương tự (mặc dù cho Amazon S3) ở đây:

Hope this helps.

2

Tôi nghĩ bạn chấp nhận tốt; Tôi tin rằng bạn đang đăng sai. Hãy thử form-to {:enctype "multipart/form-data"} hoặc từ vỏ curl --form [email protected]/home/me/Penguins.jpg http://localhost:8080/Upload

Các vấn đề liên quan