title: How to receive POSTed parameter with multipart/form-data boundary in Go
body: <p>I'm using <a href="http://hayageek.com/docs/jquery-upload-file.php" rel="nofollow">HayaGeek's jQuery file upload</a> plugin, and successfully post a request that can be seen on the chrome's developer tool:</p>
  
  <pre><code>/* General */
  Remote Address:127.0.0.1:80
  Request URL:http://127.0.0.1/profile/edit
  Request Method:POST
  Status Code:200 OK
  
  /* Response Headers */
  Connection:keep-alive
  Content-Length:101
  Content-Type:application/json
  Date:Fri, 24 Apr 2015 02:04:51 GMT
  Server:nginx/1.6.2
  Set-Cookie:SK=A; Path=/; Expires=Fri, 24 Apr 2015 04:04:51 UTC
  
  /* Request Headers */
  Accept:*/*
  Accept-Encoding:gzip, deflate
  Accept-Language:en-US,en;q=0.8,id;q=0.6
  Connection:keep-alive
  Content-Length:12855
  Content-Type:multipart/form-data; boundary=----WebKitFormBoundarydlN4BAQWeDyF512h
  Cookie:SK=A
  Host:127.0.0.1
  Origin:http://127.0.0.1
  Referer:http://127.0.0.1/profile/edit
  User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
  X-Requested-With:XMLHttpRequest
  
  /* Request Payload */
  ------WebKitFormBoundarydlN4BAQWeDyF512h
  Content-Disposition: form-data; name="file"; filename="screen-2015-04-23-21-01-51.png"
  Content-Type: image/png
  
  
  ------WebKitFormBoundarydlN4BAQWeDyF512h
  Content-Disposition: form-data; name="a"
  
  file_upload
  ------WebKitFormBoundarydlN4BAQWeDyF512h
  Content-Disposition: form-data; name="key"
  
  transcript
  ------WebKitFormBoundarydlN4BAQWeDyF512h
  Content-Disposition: form-data; name="id"
  
  379
  ------WebKitFormBoundarydlN4BAQWeDyF512h
  Content-Disposition: form-data; name=""
  
  undefined
  ------WebKitFormBoundarydlN4BAQWeDyF512h--
  </code></pre>
  
  <p>There are no problem getting the uploaded <code>file</code>, using this command:</p>
  
  <pre><code>file, header, err := request.FormFile(`file`) 
  // `request` is `*http.Request`
  </code></pre>
  
  <p>But I'm getting trouble getting the rest of the <code>POST</code>ed parameters, I've tried these but get no luck:</p>
  
  <pre><code> a := request.FormValue(`a`) // should be: `file_upload`
   id := request.FormValue(`id`) // should be: `transcript`
   key := request.FormValue(`key`) // should be: `379`
   // normally it's works fine, but for this plugin it doesn't work
  </code></pre>
  
  <p>A normal post request (without <code>boundary</code>, without that plugin) would give something like this, that the <code>POST</code>ed parameter can be retrieved normally using the command above:</p>
  
  <pre><code>/* General */
  Remote Address:127.0.0.1:80
  Request URL:http://127.0.0.1/profile/edit
  Request Method:POST
  Status Code:200 OK
  
  /* Response Headers */
  Connection:keep-alive
  Content-Length:297
  Content-Type:application/json
  Date:Fri, 24 Apr 2015 02:17:31 GMT
  Server:nginx/1.6.2
  Set-Cookie:SK=A; Path=/; Expires=Fri, 24 Apr 2015 04:17:31 UTC
  
  - Request Headers
  Accept:*/*
  Accept-Encoding:gzip, deflate
  Accept-Language:en-US,en;q=0.8,id;q=0.6
  Connection:keep-alive
  Content-Length:23
  Content-Type:application/x-www-form-urlencoded; charset=UTF-8
  Cookie:SK=A
  Host:127.0.0.1
  Origin:http://127.0.0.1
  Referer:http://127.0.0.1/profile/edit
  User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
  X-Requested-With:XMLHttpRequest
  
  /* Form Data */
  a:show
  id:379
  key:transcript
  </code></pre>