обертка процедур (функций) в классы для более удобного и простого понимания разработчиком структуры и иерархии большого (огромного) проекта.
Заголовок— одно название, он в формат не преобразовывает
Но это явно не единственная ошибка, например, $action == "yes"; - это какое-то сравнение вместо присваивания.
/* Prepare request */
$multipartBoundary = "--------------------------" . microtime(true);
$contentType = "multipart/form-data; boundary={$multipartBoundary}";
$content = "";
// Files
$paramName = "files";
foreach ($files as $file) {
$fileBaseName = basename($file);
$fileContent = file_get_contents($file);
$content .= "--{$multipartBoundary}\r\n";
$content .= "Content-Disposition: form-data; name=\"{$paramName}\"; filename=\"{$fileBaseName}\"\r\n";
$content .= "Content-Type: application/zip\r\n\r\n{$fileContent}\r\n";
}
// Regular params
foreach ($params $key=>$value) {
$content .= "--{$multipartBoundary}\r\n";
$content .= "Content-Disposition: form-data; name=\"{$key}\"\r\n\r\n{$value}\r\n";
}
// End
$content .= "--{$multipartBoundary}--\r\n";
// Create context
$context = stream_context_create(['http' => [
'header' => "Content-type: {$contentType}",
'method' => "POST",
'timeout' => 5, // Seconds
'content' => $content,
'ignore_errors' => true // Do not report about HTTP errors as PHP Warnings
]]);
/* Send request */
$apiUrl = "https://api.example.com";
$endpoint = "/some/endpoint";
$url = $apiUrl . $endpoint;
$body = file_get_contents($url, false, $context);
$headerInfo = explode(" ", $http_response_header[0]);
$code = (int)$headerInfo[1];
$message = implode(" ", array_slice($headerInfo, 2));
Наоборот же - сервер сторонний, а ты (клиент) к нему подключаешься