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

+25 -1
View File
@@ -294,6 +294,18 @@ export class ProvaService {
private async processFileByType(file: Express.Multer.File) {
if (file.mimetype.startsWith('image/')) {
try {
// Para JPEGs, converter sempre para PNG para evitar problemas
if (file.mimetype === 'image/jpeg') {
return await sharp(file.buffer)
.png() // Converter para PNG é mais seguro
.resize(1200, 900, {
fit: 'inside',
withoutEnlargement: true
})
.toBuffer();
}
// Para outras imagens, manter o formato original
return await sharp(file.buffer)
.resize(1200, 900, {
fit: 'inside',
@@ -302,7 +314,19 @@ export class ProvaService {
.toBuffer();
} catch (error) {
console.error('Erro ao processar imagem com sharp:', error);
return file.buffer; // Fallback para o buffer original
// Se sharp falhar, tentar abordagem mais simples
try {
console.log('Tentando método alternativo de processamento de imagem...');
// Converter diretamente para PNG sem redimensionamento
return await sharp(file.buffer)
.png()
.toBuffer();
} catch (fallbackError) {
console.error('Falha total no processamento da imagem:', fallbackError);
// Em último caso, retornar o buffer original
return file.buffer;
}
}
}
return file.buffer;