使用Compojure,Hiccup和Ring上传文件

jus*_*nhj 5 file-upload clojure hiccup

要将文件上传到我在Clojure中编写的服务器,我需要一个看起来像这样的客户端表单:

<form action="/file" method="post" enctype="multipart/form-data">
<input name="file" type="file" size="20" />
<input type="submit" name="submit" value="submit" />
Run Code Online (Sandbox Code Playgroud)

但是我找不到Hiccup或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]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是文档在哪里找到如何修改它来制作一个上传文件的表单?

Nic*_*roi 6

可以在multipart-paramsRing中间件中找到对Compojure的文件上载支持.以下是如何使用它的一些示例:

总是看看Ring中间件文档,它充满了很棒的代码!

更新:第一次没有正确阅读您的问题!要生成这样的表单:

<form action="/file" method="post" enctype="multipart/form-data">
  <input name="file" type="file" size="20" />
  <input type="submit" name="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

这应该够了吧:

[:form {:action "/file" :method "post" :enctype "multipart/form-data"}
 [:input {:name "file" :type "file" :size "20"}]
 [:input {:type "submit" :name "submit" :value "submit"]]
Run Code Online (Sandbox Code Playgroud)

我是从记忆中完成的,所以没有经过考验.