Eaí galera, tudo beleza?
Aqui é o Arthur e hoje veremos mais uma dica de LARAVEL!
Vamos a aprender a armazenar uma imagem do formulário em binário no banco de dados através de uma biblioteca PHP de manipulação de imagens chamada Intervention Image!
1. Adicione a biblioteca através do composer:
composer require intervention/image
2. Vá até seu arquivo config/app.php, e adicione a seguinte linha ao array $providers:
Intervention\Image\ImageServiceProvider::class
3. No mesmo arquivo config/app.php, adicione a seguinte linha ao array $aliases:
'Image' => Intervention\Image\Facades\Image::class
4. Para utilizar a biblioteca, adicione a seguinte linha ao seu controller:
use Intervention\Image\Facades\Image;
4.1 Publique as configurações através do terminal:
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"
5. No mesmo controller, na função de salvar, verifique se está recebendo um input file do formulário e codifique para png:
if ($request->file(‘IMAGEMFORM’) !== null) {
$imagem = $request->file(‘IMAGEMFORM’);
$foto_reduzida = Image::make($imagem->getRealPath())
->resize(null, 150, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})
->encode(‘png’);
}
6. Função do controller para salvar a imagem codificada no banco de dados:
if (isset($foto_reduzida)) {
DB::table('nomeTabela')
->where('id', $id)
->update([
'IMAGEM' => $foto_reduzida
]);
}
7. Pronto, agora basta acessar a imagem na sua view. Para fazer isso, adicione o atributo src no elemento img da view e acesse do banco de dados:
src="data:image/png;base64,{{base64_encode($objeto->IMAGEM)}}"
Então é isso, fique ligado para mais dicas!
Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!