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のドキュメントによると、ファイルは1時間保存されます。

于 2012-06-26T21:14:39.703 に答える