this is what i got with spec (not schema):
;; file upload
(s/def ::filename spec/string?)
(s/def ::content-type spec/string?)
(s/def ::size spec/int?)
(s/def ::tempfile #(instance? File %))
(s/def ::file (st/spec {:spec (s/keys :req-un [::filename ::content-type ::size]
:opt-un [::tempfile])
:json-schema/type "file"}))
(POST "/file" []
:summary "post a file"
:multipart-params [file :- ::file]
:return ::any?
:middleware [multipart/wrap-multipart-params]
(ok (do (println file)
(dissoc file :tempfile))))
you should be able to add more multipart-params?