title: What is the right way to POST multipart/form-data using curl?
body: <p>I used this syntax to post a file along with some parameters:</p>
  
  <pre><code>curl -v -include --form "key1=value1" --form upload=localfilename URL
  </code></pre>
  
  <p>The file is around 500K in size. First of all, I see content length to be 254 on the transmit side. Later the server response's content length is 0. 
  Where am I going wrong? </p>
  
  <p>Here is the complete trace of the command.</p>
  
  <pre><code>* Couldn't find host xxx.xxx.xxx.xxx in the _netrc file; using defaults
  * About to connect() to xxx.xxx.xxx.xxx port yyyy (#0)
  *   Trying xxx.xxx.xxx.xxx...
  * Adding handle: conn: 0x4b96a0
  * Adding handle: send: 0
  * Adding handle: recv: 0
  * Curl_addHandleToPipeline: length: 1
  * - Conn 0 (0x4b96a0) send_pipe: 1, recv_pipe: 0
  * Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) port yyyy (#0)
  * POST /zzzzzz/UploadFile HTTP/1.1
  * User-Agent: curl/7.32.0
  * Host: xxx.xxx.xxx.xxx:yyyy
  * Accept: */*
  * Content-Length: 254
  * Expect: 100-continue
  * Content-Type: multipart/form-data; boundary=------------------------948a6137eef50079
  *
  * HTTP/1.1 100 Continue
  * HTTP/1.1 100 Continue
  
  * HTTP/1.1 200 OK
  * HTTP/1.1 200 OK
  * Server Apache-Coyote/1.1 is not blacklisted
  * Server: Apache-Coyote/1.1
  * Server: Apache-Coyote/1.1
  * Added cookie JSESSIONID="C1D7DD042E250211D9DEA82688876F88" for domain xxx.xxx.xxx.xxx, path /zzzzz/, expire 0
  * Set-Cookie: JSESSIONID=C1D7DD042E250211D9DEA82688876F88; Path=/zzzzzz/;
  * HttpOnly
  * Set-Cookie: JSESSIONID=C1D7DD042E250211D9DEA82688876F88; Path=/zzzzzz/; HttpOnly
  * Content-Type: text/html;charset=ISO-8859-1
  Content-Type: text/html;charset=ISO-8859-1
  * Content-Length: 0
  * Content-Length: 0
  * Date: Tue, 01 Oct 2013 11:54:24 GMT
  * Date: Tue, 01 Oct 2013 11:54:24 GMT
  * Connection #0 to host xxx.xxx.xxx.xxx left intact
  </code></pre>