Example #1
0
File: Curl.php Project: kingsj/core
 /**
  * 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);
 }