Improve and fix ProvaService.ts

Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2025-04-11 13:50:32 -03:00
1 parent b764c93106
commit c459997cd9
3 files changed
+106 -12

No files matched your search

+16 -1
View File
@@ -1,4 +1,5 @@
import { createHash } from 'crypto';
import sharp from 'sharp';
export class FileValidator {
async validateFile(buffer: Buffer, mimeType: string) {
@@ -18,7 +19,7 @@ export class FileValidator {
const allowedTypes = [
'application/pdf',
'image/jpeg',
'image/png', // Corrigido o tipo MIME para PNG
'image/png',
'image/gif',
'image.webp'
];
@@ -27,6 +28,20 @@ export class FileValidator {
return { valid: false, error: 'Tipo de arquivo não suportado. Use PDF, JPEG, PNG ou GIF.' };
}
// Verificação adicional para JPEG
if (mimeType === 'image/jpeg') {
try {
// Verificar se é um JPEG válido tentando processá-lo
await sharp(buffer).metadata();
} catch (jpegError) {
console.error('Erro ao validar JPEG:', jpegError);
return {
valid: false,
error: 'O arquivo JPEG parece estar corrompido. Tente salvar a imagem em um formato diferente e enviar novamente.'
};
}
}
return { valid: true };
} catch (error) {
console.error('Erro na validação de arquivo:', error);