/** * Returns a value for the CURLOPT_POSTFIELDS option. * * @return string|array A post fields value */ private static function getPostFields(Message\Request $request) { if (!$request instanceof Message\FormRequest) { return $request->getContent(); } $fields = $request->getFields(); $multipart = false; foreach ($fields as $name => $value) { if ($value instanceof Message\FormUpload) { $multipart = true; if ($file = $value->getFile()) { // replace value with upload string $fields[$name] = '@' . $file; if ($contentType = $value->getContentType()) { $fields[$name] .= ';type=' . $contentType; } } else { return $request->getContent(); } } } return $multipart ? $fields : http_build_query($fields); }