<form method="post" enctype="multipart/form-data">
<input type="file" name="foto" accept="image/*">
a linha abaixo retorna uma classe chamada UploadedFile (do laravel)
$arquivo = request('foto');
obtendo binário do arquivos enviado ao diretório temporário do linux
$binarioDoArquivo = file_get_contents($arquivo->path());
se precisar salvar o mime type do arquivo
$mimeTypeDoArquivo = mime_content_type($arquivo->path());
$arquivos = new Arquivos();
$arquivos->arquivo_binario = DB::raw("decode('" . base64_encode($binarioDoArquivo) . "', 'base64')");
$arquivos->mime_type_arquivo = $mimeTypeDoArquivo;
$arquivos->save();
Como retornar um arquivo que está salvo no banco. O exemplo abaixo retorna como se fosse um pdf Criar o seguinte action no controlador:
public function show($id) {
$arquivo = Arquivos::find($id);
return response()->make(stream_get_contents($arquivo->arquivo_binario), 200, [
'Content-Type' => 'application/pdf',//ou dinamicamente com $arquivo->mime_type_arquivo
]);
}
no arquivo routes/web.php
Route::get('/arquivo/{id}', [\App\Http\Controllers\ControladorDeExemploController::class, 'show']);