3

我知道如何使用 hunchentoot 处理单个文件上传hunchentoot:post-parameter,但是当我添加属性时multiple,即<input name="file" type="file" multiple="multiple"/>. 我(hunchentoot:post-parameter "file")只买了其中一个。是否存在(以及什么是)接收用户选择的所有文件的机制?

4

2 回答 2

7

Hunchentoot API 不会直接让您访问多个上传的文件,但您可以使用它(hunchentoot:post-parameters *request*)来检索所有 POST 参数的列表(包括上传的文件)。这将是一个列表,您可以使用标准列表技术(例如(remove "file" (hunchentoot:post-parameters hunchentoot:*request*) :test (complement #'equal) :key #'car))获取所有上传文件的列表。

于 2013-03-06T21:48:40.013 回答
2

这是 hunchentoot 中一项相当直接的任务。假设您有一个带有and的 html<input>元素,您可以访问与“文件”输入关联的所有文件,如下所示:name="files"multi="true"

(loop for post-parameter in (hunchentoot:post-parameters*)
            if (equal (car post-parameter) "files")
            collect post-parameter))

这将为您提供一个列表,其长度应与与名称“files”关联的上传文件的数量相匹配。每个元素都将是一个如下所示的列表:

("files" #P"/temporary/file1" "name of file" "file type")

更多信息可以在文档齐全的参考中找到。

于 2016-09-10T19:08:14.783 回答