2012-02-08 12 views
6

Ho una messa a punto di ingresso di file come questoCome si accetta il caricamento di file in noir

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

mio caricati endpoint si presenta quindi come questo.

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

libro sembra solo una stringa del titolo del file che è stato caricato e non il file stesso. Come ottengo il file?

risposta

4

Secondo questa discussione (vedi il secondo post di Chris Granger):

si può usare qualcosa di simile:

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

Ecco un succo da questa discussione:

con una nota (di nuovo da Chris) che è necessario Leiningen 1.6.1.1+ non incorrere in un errore.

si può vedere una cosa simile (anche se per Amazon S3) qui:

Spero che questo aiuti.

2

Penso che tu stia accettando bene; Credo che stai postando torto. Prova form-to {:enctype "multipart/form-data"} o dalla shell curl --form [email protected]/home/me/Penguins.jpg http://localhost:8080/Upload

Problemi correlati