3

を使用して hunchentoot で単一のファイルのアップロードを処理する方法を知っていますhunchentoot:post-parameterが、プロパティを追加するとmultiple、つまり<input name="file" type="file" multiple="multiple"/>. 私は(hunchentoot:post-parameter "file")そのうちの1つだけを手に入れました。ユーザーが選択したすべてのファイルを受信するメカニズムはありますか?

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 ではかなり単純なタスクです。<input>と を含む html要素があると仮定する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 に答える