Laravel Image Intervention does not save extension

Asked

Viewed 72 times

1

The image Intervention does not save the image extension either in the database or in the folder where the saved files are located.

but I want it to be recorded, follow the code to see if I’m doing something wrong.

I didn’t want to put . jpg at the end of the name, but if there’s no way I’ll do it. if anyone can see that I’m wavering in the code, gratitude.

Laravel 5.5

public function store($data)
{
    $originalImage  = $data->file('imagem');

    ///DIRETORIOS PARA AS IMAGENS DOS GAMES
    $thumbnailPath  = public_path().'/imagens/produtos/ps4/thumbnail/';
    $originalPath   = public_path().'/imagens/produtos/ps4/';

    ///NOME QUE VEM NA IMAGEM
    $original_name_img  = $originalImage->getClientOriginalName();

    ///NOVO NOME PARA IMAGEM GRANDE
    $novo_nome_img      = $originalPath.time().'_'.$data['produtos_id'];

    ///NOVO NOME PARA THUMBNAIL
    $novo_nome_img_thumb = $thumbnailPath.time().'_'.$data['produtos_id'];

    ///CRI A NOVA IMAGEM
    $thumbnailImage = Image::make($originalImage)->encode('jpg');

    ///RESIZE IMAGEM GRANDE
    $thumbnailImage->resize(325, 429);
    $thumbnailImage->save($novo_nome_img);

    ///RESIZE IMAGEM PEQUENA
    $thumbnailImage->resize(200,250);
    $thumbnailImage->save($novo_nome_img_thumb);

    $imagemodel= new ImageUpload();

    //SALVAR NO BANCO O NOME DA IMAGEM E A ID DO PRODUTO REFERENTE A IMAGEM
    $imagemodel->imagem         =   time().'_'.$data['produtos_id'];
    $imagemodel->produtos_id    =   $data['produtos_id'];

    return $imagemodel->save();
}
  • Don’t save because you don’t pass the extension... !!!

1 answer

1


It is necessary to take the extension ($extension = Input::file('photo')->getClientOriginalExtension();) and move to the variable that is building the name of the photo and also pass the same name of the photo to be saved in the bank, example:

public function store($data)
{
    $originalImage  = $data->file('imagem');

    ///DIRETORIOS PARA AS IMAGENS DOS GAMES
    $thumbnailPath  = public_path().'/imagens/produtos/ps4/thumbnail/';
    $originalPath   = public_path().'/imagens/produtos/ps4/';

    ///NOME QUE VEM NA IMAGEM
    $original_name_img  = $originalImage->getClientOriginalName();

    //EXTENSÃO DA IMAGEM ENVIADA    
    $original_ext_img  = $originalImage->getClientOriginalExtension();

    ///NOVO NOME PARA IMAGEM GRANDE
    $novo_nome_img      = $originalPath.time()
        .'_'.$data['produtos_id'].'.'.$original_ext_img;

    ///NOVO NOME PARA THUMBNAIL
    $novo_nome_img_thumb = $thumbnailPath.time()
        .'_'.$data['produtos_id'].'.'.$original_ext_img;

    ///CRI A NOVA IMAGEM
    $thumbnailImage = Image::make($originalImage)->encode('jpg');

    ///RESIZE IMAGEM GRANDE
    $thumbnailImage->resize(325, 429);
    $thumbnailImage->save($novo_nome_img);

    ///RESIZE IMAGEM PEQUENA
    $thumbnailImage->resize(200,250);
    $thumbnailImage->save($novo_nome_img_thumb);

    $imagemodel= new ImageUpload();

    //SALVAR NO BANCO O NOME DA IMAGEM E A ID DO PRODUTO REFERENTE A IMAGEM
    $imagemodel->imagem         =   $novo_nome_img;
    $imagemodel->produtos_id    =   $data['produtos_id'];

    return $imagemodel->save();
}

Observing: I saw that in your code two images are saved, but in your bank only the first image, you may need another field to record the smaller photo?

Reference: Request - Files

  • Show bro.. vlw.. thanks!!

  • No need no.. the name of the two is the same.. only changes the folder.. I have a thumbnail folder for them.

  • 1

    Brother fight! Gave it right.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.