Я хочу загрузить изображение в веб-сервис, используя Lumen + Guzzle 6. Внешний веб-сервис не принимает «base64-кодирование» отправляемого изображения. В качестве такового принимается только файл изображения.
Но я по-прежнему получаю сообщение об ошибке от внешнего веб-сервиса / API о том, что изображение не может быть найдено или, скорее всего, Guzzle отправил запрос без изображения. Проверка с file_exists ($ filename_with_path) отреагировала успешно, поэтому доступ к файлу обычно возможен.
Если я работаю с командной строкой cURL на консоли, у меня она работала нормально:
curl -v --user "username:password" ...
Большое спасибо за каждую подсказку.
Вот код проблемы:
$filename_with_path = storage_path( 'app/pics/') . $file_name;
$fileContent = File::get( $filename_with_path );
$mime_type = File::mimeType( $filename_with_path );
$this->guzzle_client = null;
$this->guzzle_client = new Client( [
'auth' => [
'username',
'password'
],
'multipart' => [
[
'name' => $file_name,
'filename' => $file_name,
'contents' => $fileContent,
'mime-type' => $mime_type,
'headers' => [ 'Content-Type' => $mime_type ]
],
],
] );
// send
$this->response = $this->guzzle_client->request( 'PUT', $base_url . $endpoint );