示例#1
0
 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;
 }