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

zca*_*ate 5 clojure ring

这真的是使用Compojure,Hiccup和Ring来上传文件

如果有多个标签:

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

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

pon*_*zao 6

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

{: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}], ...}
Run Code Online (Sandbox Code Playgroud)

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