private static function build_http_query_multi($params, $content_type = NULL) { if (!$params) { return ''; } uksort($params, 'strcmp'); $pairs = array(); self::$boundary = $boundary = uniqid('------------------'); $MPboundary = '--' . $boundary; $endMPboundary = $MPboundary . '--'; $multipartbody = ''; foreach ($params as $key => $value) { if (in_array($key, array('data', 'photo', 'file', 'image')) && $value[0] == '@') { $url = ltrim($value, '@'); $content = file_get_contents($url); $array = explode('?', basename($url)); $filename = $array[0]; $multipartbody .= $MPboundary . "\r\n"; $multipartbody .= 'Content-Disposition: form-data; name="' . $key . '"; filename="' . $filename . '"' . "\r\n"; if ($content_type) { $multipartbody .= "Content-Type: " . $content_type . "\r\n\r\n"; } else { $multipartbody .= "Content-Type: " . self::get_mime_type($filename) . "\r\n\r\n"; } $multipartbody .= $content . "\r\n"; } else { $multipartbody .= $MPboundary . "\r\n"; $multipartbody .= 'Content-Disposition: form-data; name="' . $key . "\"\r\n\r\n"; $multipartbody .= $value . "\r\n"; } } $multipartbody .= $endMPboundary; return $multipartbody; }