2012-02-08 7 views
6

Tengo una configuración de entrada de archivo como esto¿Cómo aceptar cargas de archivos en noir

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

Mi punto final de carga a continuación se parece a esto.

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

libro simplemente parece ser una cadena del título del archivo que se cargó y no el archivo en sí. ¿Cómo obtengo el archivo?

Respuesta

4

De acuerdo con este hilo (véase el segundo mensaje por Chris Granger):

se puede usar algo como:

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

Aquí hay una esencia de este tema:

con una nota (de nuevo de Chris) que necesita Leiningen 1.6.1.1+ que no se ejecute en un insecto.

se puede ver algo similar (aunque para Amazon S3) aquí:

Espero que esto ayude.

2

Creo que estás aceptando bien; Creo que estás publicando mal. Pruebe form-to {:enctype "multipart/form-data"}, o desde el shell curl --form [email protected]/home/me/Penguins.jpg http://localhost:8080/Upload

Cuestiones relacionadas