 <p>It works for me:</p> <pre><code> {ok, F} = file:read_file("warning.gif"), httpc:request(post,{Url, [],"multipart/form-data", F},[],[]). </code></pre> <p>I recieved on cowboy web server with function <code>cowboy_req:body(Req)</code>:</p> <pre><code>{ok,&lt;&lt;71,73,70,56,57,97,11,0,11,0,230,64,0............&gt;&gt;, {http_req,#Port&lt;0.65562&gt;,ranch_tcp,keepalive,&lt;0.8736.0&gt;,&lt;&lt;"POST"&gt;&gt;, 'HTTP/1.1', {{127,0,0,1},58154}, &lt;&lt;"localhost"&gt;&gt;,undefined,8000,&lt;&lt;"/test1"&gt;&gt;, [&lt;&lt;"test1"&gt;&gt;], &lt;&lt;&gt;&gt;,undefined,[], [{&lt;&lt;"content-type"&gt;&gt;,&lt;&lt;"multipart/form-data"&gt;&gt;}, {&lt;&lt;"content-length"&gt;&gt;,&lt;&lt;"516"&gt;&gt;}, {&lt;&lt;"te"&gt;&gt;,&lt;&lt;&gt;&gt;}, {&lt;&lt;"host"&gt;&gt;,&lt;&lt;"localhost:8000"&gt;&gt;}, {&lt;&lt;"connection"&gt;&gt;,&lt;&lt;"keep-alive"&gt;&gt;}], [{&lt;&lt;"content-length"&gt;&gt;,516}, {&lt;&lt;"expect"&gt;&gt;,undefined}, {&lt;&lt;"content-length"&gt;&gt;,516}, {&lt;&lt;"connection"&gt;&gt;,[&lt;&lt;"keep-alive"&gt;&gt;]}],undefined,[],done,undefined,&lt;&lt;&gt;&gt;,true,waiting,[],&lt;&lt;&gt;&gt;, undefined}} </code></pre>