2012-06-22 1 views
3

Это действительно сдирать из Using Compojure, Hiccup and Ring to upload a fileИспользование Compojure, икота и кольцо для загрузки нескольких файлов

Если есть многократный тег:

<form action="/file" method="post" enctype="multipart/form-data"> 
    <input name="file" type="file" size="20" multiple/> 
<input type="submit" name="submit" value="submit" /> 

Как бы один идти о получении значения всех файлы с использованием кольца?

ответ

4

Я создал тестовый проект и проверил, какие данные содержится в карте запроса, когда вы отправляетесь на задний план при отправке нескольких файлов. Ниже приводится часть карты запроса:

{: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's documentation файлы будут храниться в течение одного часа.

+0

Спасибо! Я использую noir, и я думаю, что эта часть не пройдет. Я буду исследовать дальше! – zcaudate