Laravel Image intervention does not save extension

1

Image intervention does not save the image extension either in the bank or in the folder where the recorded files are stored.

But I want to be recorded, follow the code to see if I'm doing something wrong.

I did not want to put .jpg at the end of the name, but if there is no way I'll do it. if anyone can see what's 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();
}
    
asked by anonymous 28.07.2018 / 01:17

1 answer

1

It is necessary to take the extension ( $extension = Input::file('photo')->getClientOriginalExtension(); ) and pass to the variable that is constructing the name of the photo and also pass the same name of the photo to be saved in the bank, for 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();
}

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

Reference Request - Files

    
28.07.2018 / 01:36