Compojure、しゃっくり、リングを使用してファイルをアップロードします
-
11-10-2019 - |
質問
私がclojureで書いているサーバーにファイルをアップロードするには、次のようなクライアントフォームが必要です。
<form action="/file" method="post" enctype="multipart/form-data">
<input name="file" type="file" size="20" />
<input type="submit" name="submit" value="submit" />
ただし、このようなフォームを作成するために、しゃっくりやCompojureのドキュメントが見つかりません。私が持っているサンプルは次のようになります:
[: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]
それで、私の質問は、ファイルをアップロードするフォームを作成するためにこれを変更する方法を見つけるためのドキュメントはどこにありますか?
解決
Compojureのファイルアップロードサポートは、 multipart-params
リングミドルウェア。使用方法の例をいくつか紹介します。
- https://gist.github.com/562624/1DF418E4851E68952FC46713F377DF2E653AFDB
- http://www.prodevtips.com/2010/12/19/file-uploads-with-clojure-ring-and-compojure/
常にリングミドルウェアのドキュメントをご覧ください。優れたコードがたくさんあります。
アップデート: :初めてあなたの質問を正しく読みませんでした!このようなフォームを生成するには:
<form action="/file" method="post" enctype="multipart/form-data">
<input name="file" type="file" size="20" />
<input type="submit" name="submit" value="submit" />
</form>
それはトリックをするはずです:
[:form {:action "/file" :method "post" :enctype "multipart/form-data"}
[:input {:name "file" :type "file" :size "20"}]
[:input {:type "submit" :name "submit" :value "submit"]]
私は記憶からそれをやったので、それはテストされていません。
他のヒント
[:input {:type "submit" :name "submit" :value "submit"]]
ない }
[:input {:type "submit" :name "submit" :value "submit"]}]
所属していません StackOverflow