Clojure 如何在liberator中从请求中提取表单数据?
我有以下客户端请求:Clojure 如何在liberator中从请求中提取表单数据?,clojure,clojurescript,form-data,liberator,Clojure,Clojurescript,Form Data,Liberator,我有以下客户端请求: (let [form-data (doto (js/FormData.) (.append "filename" file))] (ajax-request {:uri "/some/uri" :method :post :body form-data :format (raw-request-format)
(let [form-data (doto
(js/FormData.)
(.append "filename" file))]
(ajax-request
{:uri "/some/uri"
:method :post
:body form-data
:format (raw-request-format)
:response-format (raw-response-format)})
)
在服务器上(使用liberator):
在服务器上,我确实得到了表单数据的打印,如下所示:
"form-data " "------WebKitFormBoundaryI9CA2zKhFT0Stmx7\r\nContent-Disposition: form-data; name=\"new-name\"\r\n\r\n{:uploaded-file #object[File [object File]], :name \"somename\", :another \"1234\"}\r\n------WebKitFormBoundaryI9CA2zKhFT0Stmx7--\r\n"
但是下一个prn不会打印任何内容,我的目标是提取:上传的文件。我做错了什么?这可能只是一个示例,但请注意,
:body
的输入流
是“可消费的”。我们“不能”slurp
2次,因为第一次调用将“标记”移动到流的末尾。是的,谢谢。在测试中,我也分别尝试了两个prn,得到了相同的结果。这看起来根本不像JSON体?我假设这是一个多部分表单body这可能只是一个示例,但是请注意,:body
的输入流
是“可消费的”。我们“不能”slurp
2次,因为第一次调用将“标记”移动到流的末尾。是的,谢谢。在测试中,我也分别尝试了两个prn,得到了相同的结果。这看起来根本不像JSON体?我假设这是一个多部分的形体
"form-data " "------WebKitFormBoundaryI9CA2zKhFT0Stmx7\r\nContent-Disposition: form-data; name=\"new-name\"\r\n\r\n{:uploaded-file #object[File [object File]], :name \"somename\", :another \"1234\"}\r\n------WebKitFormBoundaryI9CA2zKhFT0Stmx7--\r\n"