public static function multipartPost($url, $fields, $name, $fileName, $fileBody, $mimeType = null, array $headers = array())
{
$data = array();
$mimeBoundary = md5(microtime());
foreach ($fields as $key => $val) {
array_push($data, '--' . $mimeBoundary);
array_push($data, "Content-Disposition: form-data; name=\"{$key}\"");
array_push($data, '');
array_push($data, $val);
}
array_push($data, '--' . $mimeBoundary);
$mimeType = empty($mimeType) ? 'application/octet-stream' : $mimeType;
$fileName = self::escapeQuotes($fileName);
array_push($data, "Content-Disposition: form-data; name=\"{$name}\"; filename=\"{$fileName}\"");
array_push($data, "Content-Type: {$mimeType}");
array_push($data, '');
array_push($data, $fileBody);
array_push($data, '--' . $mimeBoundary . '--');
array_push($data, '');
$body = implode("\r\n", $data);
$contentType = 'multipart/form-data; boundary=' . $mimeBoundary;
$headers['Content-Type'] = $contentType;
$request = new Request('POST', $url, $headers, $body);
return self::sendRequest($request);
}