title: Arduino POST fails to complete
body: <p>I am making a post request on an Arduino device with the Ethernet <a href="http://www.arduino.cc/en/Main/ArduinoShields" rel="nofollow">shield</a>. The server is a <a href="http://en.wikipedia.org/wiki/Node.js" rel="nofollow">Node.js</a> server, and I have handled the post request server-side with the same results both with formaline and formidable. The POST is processed, but it doesn't complete the file transfer.</p>
  
  <blockquote>
    <p>loadstart: {"time":1339574854222}
    "bytesReceived": 178,
    "filesCompleted": 0</p>
  </blockquote>
  
  <p>This is the code that sends the post:</p>
  
  <pre class="lang-js prettyprint-override"><code>String boundary = "--73249889599006000";
  String URL = "/upload";
  String contentType = "text/plain";
  String fileName = "text.txt";
  
  void sendData(){
      String thisFile = "This is not the contents of thisFile";
      Serial.println("connecting...");
      // If you get a connection, report back via serial:
      if (client.connect(server, 80)) {
          Serial.println("connected");
  
          // Make a HTTP request:
          String postHeader = "POST " + URL + " HTTP/1.1\n";
          postHeader += "Content-Type: multipart/form-data; boundary=";
          postHeader += boundary + "\n";
          postHeader += "Host: 192.168.3.78\n";
          postHeader += "User-Agent: Arduino\n";
          postHeader += "Referer: http://192.168.3.78/upload\n";
  
          String requestHead = "\n--" + boundary + "\n";
          requestHead += "Content-Disposition: form-data; name=\"upload\"; filename=\"" + fileName + "\"\n";
          requestHead += "Content-Type: " + contentType + "\n\n";
  
          String tail = "\n--" + boundary + "--\n\n";
  
          int contentLength = requestHead.length() + thisFile.length() + tail.length();
  
          postHeader += "Content-Length: " + String(contentLength, DEC) + "\n\n";
  
          char charBuf0[postHeader.length() + 1];
          postHeader.toCharArray(charBuf0, postHeader.length() + 1);
          client.write(charBuf0);
  
          char charBuf1[requestHead.length() + 1];
          postHeader.toCharArray(charBuf1, requestHead.length() + 1);
          client.write(charBuf1);
  
          char charBuf2[thisFile.length() + 1];
          postHeader.toCharArray(charBuf2, thisFile.length() + 1);
          client.write(charBuf2);
  
          char charBuf3[tail.length() + 1];
          postHeader.toCharArray(charBuf3, tail.length() + 1);
          client.write(charBuf3);
      }
  </code></pre>