title: http Request.FormFile : handle zip files?
body: <p>I'm writing a web server in go.</p>
  
  <p>On one of the pages, the user can upload a file.</p>
  
  <p>I would like to be able to handle zip files.</p>
  
  <p>In the <code>archive/zip</code> package, I only see two functions which allow me to read from a zip archive :</p>
  
  <ol>
  <li><code>func OpenReader(name string) (*ReadCloser, error)</code></li>
  <li><code>func NewReader(r io.ReaderAt, size int64) (*Reader, error)</code></li>
  </ol>
  
  <p>I would like to avoid writing and reading back from the disk,<br>
  if I want to use the second function, I need to know the size of the uploaded file before calling the function.</p>
  
  <p><strong>Question</strong></p>
  
  <p>I will split my question in two parts :</p>
  
  <ol>
  <li><p>What would be the idiomatic way to read the unzipped content of a zip file uploaded through a standard <code>multipart/form-data</code> html form ?</p></li>
  <li><p>How can I get the actual size of a file uploaded through a html form ?</p>
  
  <pre><code>func(req *http.Request) {
      f, h, err := req.FormFile("fileTag")
      if err != nil {
           panic(err)
      }
      var fileSize int = ??
  
      unzipper, err := zip.NewReader(f, fileSize)
  }
  </code></pre></li>
  </ol>