Improve and fix ProvaService.ts
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
b764c93106
commit
c459997cd9
3 files changed
+106
-12
No files matched your search
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user