5

这真的是使用 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" />

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

4

1 回答 1

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}], ...}

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

于 2012-06-26T21:14:39.703 回答