[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Renato Machado
Criador Renato Machado 31/05/2021

Professor Carlos como fazer upload de arquivos como imagens por exemplo usando guzzle? Vai rolar algum adicional?

Manager Carlos Ferreira 31/05/2021

Olá, Renato!
Tudo bem?

Qual é a sua dúvida amigo, é como fazer o upload de arquivo na API, ou, como enviar os arquivo de uma API para outra usando o Guzzle?

No primeiro caso, a implementação na API que vai receber o arquivo e fazer o upload não, muda, não importa o tipo de client, a implementação é a mesma.

Sobre enviar arquivos, é possível fazer com o Guzzle.
Porém, se tiver trabalhando com uma versão mais atualizada do Laravel, como a versão 8.x, tem por default o package oficial Http, que abstrai ainda mais o Guzzle.

Veja como é simples enviar arquivo: https://laravel.com/docs/8.x/http-client#multi-part-requests

Carlos Ferreira
Criador Renato Machado 31/05/2021

Tem como me dar um exemplo?

tentei  https://laravel.com/docs/8.x/http-client#multi-part-requests

m,ais não consegui entender nada, meu codigo:

$data = [
            'codigo' => $request->codigo,
            'nome'   => $request->nome,
            'price'  => $request->price,
            'imagem' => $request->imagem
        ];

        
        $guzzle = new Guzzle;
        $response = $guzzle->request('POST','http://127.0.0.1:8000/api/produtos', [
            'headers' => [
                'Authorization' => "Bearer {$this->token}"
            ],
            'form_params' => $data,
        ]);
Renato Machado
Criador Renato Machado 31/05/2021

Estou tentando cadastra na API que criei

Renato Machado
Manager Carlos Ferreira 31/05/2021

Como está usando o Http default do Laravel, não precisa usar o Guzzle diretamente, porque essa facade Http abstrai para você e deixa a implementação mais simples.

Veja como enviar um arquivo usando a facade Http do Laravel:
// Enviando o arquivo que está em:
// storage/app/public/nome-do-arquivo.png
Http::attach(
    file_get_contents(storage_app('app/public/nome-do-arquivo.png'))
)->post('URL da API que vai receber a request', [
    'name' => 'Nome Aqui',
    'email' => '[email protected]',
]);

Carlos Ferreira
Criador Renato Machado 31/05/2021

Da esse erro

Call to undefined function App\Http\Controllers\storage_app()

aqui é o isso mesmo?

'name' => 'Nome Aqui',
    'email' => '[email protected]',

ou é email e senha?

 

Renato Machado
Criador Renato Machado 31/05/2021

Vc não posderia incluir uma aula explicando sobre como fazer upload de imagem e update usando o Guzzle ou Http? seria otimo, só essa logica que ta me confundindo muito, até consegui cadastrar usando o Guzzle, mais update não ta rolando

 $file = $request->imagem->getPathname();
'multipart' => [
          [
             'name'     => 'imagem',
              'contents' => fopen($file, 'r')
          ]
], 
 
Renato Machado
Manager Carlos Ferreira 31/05/2021

Nesse curso aqui vou ensinar exatamente isso que precisar, ele está previsto para ser lançado já no início do próximo mês:
https://academy.especializati.com.br/curso/laravel-microservices-gateway

Carlos Ferreira
Criador Renato Machado 31/05/2021

Professor Carlos segue os git(s) para me ajudar a entender porque não consigo fazer update da imagem com Guzzle

API

https://github.com/renatoribeiromachado/apiProdutos

Consumir a API

https://github.com/renatoribeiromachado/consumirApiGuzzle

Renato Machado
Manager Carlos Ferreira 31/05/2021

Te enviei um e-mail, agendando um dia para gerar um exemplo prático e real dentro do que você já tem.

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!