title: Golang upload file using AJAX
body: <p>I currently have the following JavaScript code</p>
  
  <pre><code>&lt;script&gt;
      $(document).ready(function() {
          $('#preview').click(function() {
              var file = document.getElementById("widget-file").files[0];
              var fr = new FileReader();
              fr.readAsArrayBuffer(file);
              fr.onload = function() {
                  $.post("/admin/snact/info", {
                      "file": fr.result,
                      "name": "test"
                  }).done(function(data) {
                      console.log(data)
                  });
              }
          });
      });
  &lt;/script&gt;
  </code></pre>
  
  <p>I want to process the file on the server-side and return some nice information but I have no idea how to access the file as a binary one (the file is binary)</p>
  
  <p>Trying that js code I can access the property name without problems but the property file will give me nothing</p>
  
  <pre><code>...
  INFO.Println(c.Request.FormValue("file"), c.Request.FormValue("name"))
  ...
  </code></pre>
  
  <p>What I am missing here? There is readAsBinary for the FileReader class but it says its under development</p>
  
  <p>I tried the following js code</p>
  
  <pre><code>&lt;script&gt;
      $(document).ready(function() {
          $('#preview').click(function() {
              var file = document.getElementById("widget-file").files[0];
              var fr = new FileReader();
              fr.readAsArrayBuffer(file);
              fr.onload = function() {
                  var fd = new FormData();
                  fd.append("file", fr.result);
                  fd.append("name", "test");
                  $.ajax({
                      url: "/admin/snact/info",
                      data: fd,
                      processData: false,
                      contentType: "multipart/form-data",
                      type: "POST"
                  }).done(function(data) {
                      console.log(data)
                  });
              }
          });
      });
  &lt;/script&gt;
  </code></pre>
  
  <p>And on the Go side I will try to load the file with</p>
  
  <pre><code>INFO.Println(c.Request.FormFile("file"))
  </code></pre>
  
  <p>But I am getting this error</p>
  
  <blockquote>
    <p>no multipart boundary param in Content-Type</p>
  </blockquote>