使用Compojure,Hiccup和Ring上传MULTIPLE文件

时间:2012-06-22 19:40:24

标签: clojure ring

这真的是Using Compojure, Hiccup and Ring to upload a file

的剽窃

如果有多个标签:

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

如何使用ring获取所有文件的值?

1 个答案:

答案 0 :(得分:5)

我创建了一个测试项目,并检查了在提交多个文件时到达后端时请求映射包含的数据类型。以下是请求图的一部分:

{:multipart-params {"submit" submit,
                    "file" [{:size 439,
                             :tempfile #<File /tmp/ring-multipart-5216436296043515206.tmp>,
                             :content-type application/javascript,
                             :filename bar.js}
                            {:size 24,
                             :tempfile #<File /tmp/ring-multipart-3573753728611312574.tmp>,
                             :content-type application/octet-stream,
                             :filename foo.md}], ...}

似乎(get-in request [:multipart-params "file"])会为您提供上传文件的向量,其中包含有关其原始文件名和类型以及临时存储位置的信息。根据{{​​3}},文件将存储一小时。