Если Вы хотите сотрудничество, то основанный на языке подход (ЛАТЕКС был бы моим предпочтением, хотя основанные на XML также хороши - DocBook, являющийся флагманом здесь) действительно имеет смысл, особенно при отслеживании файлов с системой управления версиями.
Что-либо, что действительно усложняет вещи как любое программное обеспечение с двоичным или собственным форматом, не поможет Вам здесь.
Жаль, если это не ответ, Вы хотите.
Попробуйте использовать clojure-apache-http , оболочку Clojure для полнофункциональных HTTP-библиотек Apache. Он поддерживает POST multipart / form-data.
I'm not sure it's possible using clojure-http-client. As far as I see in the source code, if you pass a map as the body argument, it will URL encode every element and send it. It appears that you can only POST files as entire bodies, without any other arguments. So nu support for multipart.
(let [out (.getOutputStream connection)]
(cond
(string? body) (spit out body)
(map? body) (spit out (url-encode body))
(instance? InputStream body)
(let [bytes (make-array Byte/TYPE 1000)]
(loop [#^InputStream stream body
bytes-read (.read stream bytes)]
(when (pos? bytes-read)
(.write out bytes 0 bytes-read)
(recur stream (.read stream bytes))))))
(.close out)))