2011-01-17 10 views
5

Per caricare un file su un server che sto scrivendo in Clojure Ho bisogno di un modulo client che sembra qualcosa di simile:Utilizzando Compojure, Hiccup e anello di caricare un file

<form action="/file" method="post" enctype="multipart/form-data"> 
<input name="file" type="file" size="20" /> 
<input type="submit" name="submit" value="submit" /> 

Tuttavia non riesco a trovare la documentazione di Hiccup o Compojure per creare una forma come questa. Il campione che ho assomiglia a questo:

[:h2 "Choose a file to upload"] 
:form {:method "post" :action "/upload"} 
[:input.math {:type "text" :name "a"}] [:span.math " + "] 
[:input.math {:type "text" :name "b"}] [:br] 

Quindi la mia domanda è dove è la documentazione di trovare come questo dovrebbe essere modificato per fare una forma che caricare un file?

risposta

6

Il supporto per il caricamento del file per Compojure è disponibile nel middleware della suoneria multipart-params. Ecco alcuni esempi di come usarlo:

avere sempre uno sguardo al anello documentazione middleware, è pieno di grande codice!

Aggiornamento: non hai letto la tua domanda bene la prima volta! Per generare un modulo come questo:

<form action="/file" method="post" enctype="multipart/form-data"> 
    <input name="file" type="file" size="20" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

Questo dovrebbe fare il trucco:

[:form {:action "/file" :method "post" :enctype "multipart/form-data"} 
[:input {:name "file" :type "file" :size "20"}] 
[:input {:type "submit" :name "submit" :value "submit"]] 

ho fatto a memoria, quindi è non testati.

+0

Grazie signore, che mi ha aiutato a far funzionare. Non sono ancora sicuro del motivo per cui l'esempio che ho iniziato ha input.math (non riesco a trovare la documentazione su dove proviene la matematica). Ho anche difficoltà a trovare la documentazione dell'anello o devo semplicemente crearla con autodoc? – justinhj

+0

La documentazione dell'anello può essere trovata qui: http://mmcgrana.github.com/ring/ –

+1

Anche la parte .math è una scorciatoia per aggiungere un attributo di classe agli elementi HTML. In Hiccup, le parole chiave tag possono essere aumentate con l'attributo id e class in un modo selettore CSS, ad esempio: '[: span # my_id.class1.class2 ...]' è equivalente a '[: span {: id" my_id ": class "class1 class2"} ...] ' –

1
[:input {:type "submit" :name "submit" :value "submit"]] 

mancante }

[:input {:type "submit" :name "submit" :value "submit"]}] 
Problemi correlati