Как отправить изображение с контроллера Laravel в API Rest

Мне нужно взять изображение из хранилища в Laravel и отправить его из контроллера во внешний API REST.

Я использую guzzlehttp multipart, но API не получил файл, возвращает file = null


person Barbaro Javier    schedule 11.02.2020    source источник


Ответы (1)


Вот как я это сделал несколько дней назад (взяв файл из запроса):

Для одного файла:

public function storeProductImage(Request $request, $id){
    $image = $request->file('image');
    $body = [
              "headers" => [
              "Accept" => "multipart/form-data"
             ],
             "multipart" => [
              "name" => "image",
              "contents" => file_get_contents($image),
              "filename" => $image->getClientOriginalName()
            ]
         ];
    return \GuzzleHttp\Client::request('POST', 'product/'.$id.'/images', $body);
}


Для нескольких файлов:

public function storeProductImage(Request $request, $id){
    $body = [ "headers" => [
                "Accept" => "multipart/form-data"
              ],
              "multipart" => []
           ];
    $images = $request->file('image');
    if (is_array($images)) {
        foreach ($images as $image) {
            array_push($body["multipart"], ["name" => "image[]",
                "contents" => file_get_contents($image),
                "filename" => $image->getClientOriginalName()]);
        }
    }
    return \GuzzleHttp\Client::request('POST', 'product/'.$id.'/images', $body);
}
person Qumber    schedule 11.02.2020
comment
Спасибо, через пару минут попробую ???? - person Barbaro Javier; 11.02.2020
comment
Большое спасибо, что спасли меня - person Barbaro Javier; 11.02.2020