title: Get file size from multipart form upload Content-Length header
body: <p>So, I'm uploading a file, and then downloading it... but the Content-Length in the upload headers do not match the file size. I'm guessing there is some other data involved with this calculation and transfer, but what exactly? How do I get an accurate file size from the Content-Length? Is it even possible?</p>
  
  <p>I know there are the boundaries, and maybe some other things, but check it:</p>
  
  <pre><code>5380216 - 5379906 = 310
  
  "----WebKitFormBoundaryeoFyqD4zr6smwYDG".size
  → 38
  </code></pre>
  
  <p>So the boundary size is 38... 310 has some LCDs of 5, 10, 31... those don't work well with 38 in any way... I'm lost!</p>
  
  <p>File sizes:</p>
  
  <pre><code>-rw-r--r--@  1 williamcotton  staff    5379906 Jul  2 12:02 testfile-downloaded.zip
  -rw-r--r--@  1 williamcotton  staff    5379906 Jun  8 14:23 testfile-uploaded.zip
  </code></pre>
  
  <p>HTTP Header</p>
  
  <pre><code>{ 
    host: 'localhost:8887',
    connection: 'keep-alive',
    'content-length': '5380217',
    'cache-control': 'max-age=0',
    origin: 'http://localhost:8887',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1193.0 Safari/537.1',
    'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryeoFyqD4zr6smwYDG',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    referer: 'http://localhost:8887/',
    'accept-encoding': 'gzip,deflate,sdch',
    'accept-language': 'en-US,en;q=0.8',
    'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' 
  }
  </code></pre>
  
  <p>tl;dr</p>
  
  <p>File size is 5379906</p>
  
  <p>Content-Length is reported as 5380216</p>
  
  <p>why?</p>