[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Albert Reis da Cruz
Criador Albert Reis da Cruz 12/07/2022

Carlos, boa!, tudo blz?

Usando Laravel 8 com o pacote intervention/image, faço upload de uma imagem, salvo na pasta storage e preciso recuperar ela depois de salva, dentro da controller pra poder utilizar uma api. Não sei como obter esta imagem depois de salva, pode me ajudar?

segue o código abaixo:

if($request->file('image')){

            // resize as save image with Intervention/Image

            $nameFile = Str::kebab($request->file('image')->getClientOriginalName());

            $image = Image::make($request->file('image'))->resize(800,600)->encode('jpg', 90);

            Storage::put($nameFile, $image); //   SALVA IMAGEM            

            aqui, preciso recuperar a imagem que está na pasta storage

            // convert image to base64

            $image = base64_encode(file_get_contents($request->file('image)));

            //  prepare request

            $request = new AnnotateImageRequest();

            $request->setImage($image);

            $request->setFeature("TEXT_DETECTION");

            $gcvRequest = new GoogleCloudVision([$request],  env('GOOGLE_CLOUD_KEY'));

            //send annotation request

            $response = $gcvRequest->annotate();

            return json_encode(["description" => $response->responses[0]->textAnnotations[0]->description]);            

        }

Manager Carlos Ferreira 12/07/2022

Olá, Albert!
Tudo bem, e com vc?

Quando faz isso: $request->file('image) está pegando o file da request

Primeiro vc pode armazenar:
$path = $request->file('image)->store('nomediretorio');

Aqui vc recupera:
storage_path($path)

Carlos Ferreira
Criador Albert Reis da Cruz 12/07/2022

Não deu certo.

ao tentar salvar com o $path = $request->file('image)->store('nomediretorio');

recebe o seguinte erro:

Command (Store) is not available for driver (Gd).

estava usando o Storage::put($nameFile, $image);

 

 

Albert Reis da Cruz
Manager Carlos Ferreira 12/07/2022

Tenta fazer assim:
if ($request->has('image')) {
    $path = $request->image->store('nomediretorio');
}
(https://laravel.com/docs/9.x/requests#storing-uploaded-files)

Porque pode ser que image não tem nenhum valor, não foi valiado.

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

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!