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
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user