Как загружать файлы через шлюз API в Lumen

#php #laravel #api #upload #lumen

Вопрос:

У меня есть API, который я создал в Lumen. API позволяет пользователям загружать файлы изображений на сервер. Микросервис отлично работает, когда я загружаю файлы напрямую.

Контроллер позволяет сохранять фон, и фон может быть как цветным, так и графическим.

шлюз API отлично работает, когда я сохраняю фон в виде цвета, так как загрузка файла отсутствует. фон загрузки работает нормально, если это просто текстовые поля

но если я попытаюсь сохранить фон типа изображения, который загружает изображение через шлюз API, я получу ошибку, показанную ниже.

изображение сообщения об ошибке

поскольку ошибка говорит о необработанной сущности, я предполагаю, что файловый ввод я не отправляю данные файла enctype='multipart/form-data' (просто предположение), потому что в нем все еще говорится, что поле требуется, даже если оно заполнено.

Я использую почтальона для отправки запросов

это часть моего кода, которая загружает изображения

 $path = 'assets' . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR . 'backgrounds' . DIRECTORY_SEPARATOR;    $destinationPath = storage_path($path);  $background = DB::table('backgrounds')-gt;insert([  'note_background_type' =gt; $bg_type,  'note_background_name' =gt; $picName,  'created_at' =gt; CarbonCarbon::now()-gt;toDateTimeString()  ]);   if ($background)  {  if ($request-gt;file('note_background_name')-gt;move($destinationPath, $picName))  {    //  }  else  {  //   }  }  

это метод в шлюзе API

 public function store(Request $request)  {  return $this-gt;successResponse($this-gt;backgroundService-gt;createBackground($request-gt;all(), Response::HTTP_CREATED));  }  

это код, который отправляет запрос на сервер микросервиса

 public function createBackground($data)  {  return $this-gt;performRequest('POST', '/backgrounds', $data);  }   

имейте в виду, что шлюз API работает нормально, если я отправляю данные без изображений. проблема в том, что я имею дело с загрузкой файлов