Использование CompoJure, Hiccup и Ring для загрузки файла

StackOverflow https://stackoverflow.com/questions/4712645

  •  11-10-2019
  •  | 
  •  

Вопрос

Чтобы загрузить файл на сервер, который я пишу в Clojure, мне нужна клиентская форма, которая выглядит примерно так:

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

Однако я не могу найти документацию для икота или в Compojure, чтобы создать подобную форму. Образец, который у меня есть, выглядит так:

[:h2 "Choose a file to upload"]
:form {:method "post" :action "/upload"}
[:input.math {:type "text" :name "a"}] [:span.math " + "]
[:input.math {:type "text" :name "b"}] [:br]

Итак, мой вопрос заключается в том, где документация, чтобы найти, как это должно быть изменено, чтобы сделать форму, которая будет загружать файл?

Это было полезно?

Решение

Поддержка загрузки файла для CompoJure можно найти в multipart-params Кольцо промежуточного программного обеспечения. Вот несколько примеров того, как его использовать:

Всегда посмотрите на документацию по промежуточной программе кольца, она полна отличного кода!

Обновлять: Не прочитал ваш вопрос правильно в первый раз! Чтобы генерировать подобную форму:

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

Это должно делать свое дело:

[:form {:action "/file" :method "post" :enctype "multipart/form-data"}
 [:input {:name "file" :type "file" :size "20"}]
 [:input {:type "submit" :name "submit" :value "submit"]]

Я сделал это из памяти, так что это не проверено.

Другие советы

[:input {:type "submit" :name "submit" :value "submit"]]

Отсутствующий }

[:input {:type "submit" :name "submit" :value "submit"]}]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top