To upload a file to a server I'm writing in Clojure I need a client form that looks something like this:
<form action="/file" method="post" enctype="multipart/form-data">
<input name="file" type="file" size="20" />
<input type="submit" name="submit" value="submit" />
However I can't find the documentation for Hiccup or in Compojure to create a form like this. The sample I have looks like this :
[: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]
So my question is where is the documentation to find how this should be modified to make a form that will upload a file?
The file upload support for Compojure can be found in the multipart-params
Ring middleware. Here's some examples of how to use it:
Always have a look at Ring middleware documentation, it is full of great code!
Update: Didn't read your question right the first time! To generate a form like this one:
<form action="/file" method="post" enctype="multipart/form-data">
<input name="file" type="file" size="20" />
<input type="submit" name="submit" value="submit" />
</form>
That should do the trick:
[:form {:action "/file" :method "post" :enctype "multipart/form-data"}
[:input {:name "file" :type "file" :size "20"}]
[:input {:type "submit" :name "submit" :value "submit"]]
I've done it from memory, so it's untested.
[:input {:type "submit" :name "submit" :value "submit"]]
Missing }
[:input {:type "submit" :name "submit" :value "submit"]}]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With