Невозможно изменить размер изображения с помощью резкого
Я использую Multer для загрузки изображений на сервер. И я использую резкое, чтобы изменить размер изображений, а затем отправить клиенту. Но что происходит, когда пользователь загружает изображение, Multer загружает его на сервер и резко изменяет его размер, даже если тот же пользователь загружает снова, Multer загружает новый файл, но Sharp не изменяет размер нового загруженного изображения, а отправляет исходное изображение с измененным размером.
app.post('/upload',(req,res)=>{
upload(req,res,(err)=>{
if(err){
res.render('picupload',{
msg: err
});
}else{
if(req.file == undefined){
res.render('picupload',{
msg: 'Error: No File selected!'
});
} else{
console.log(req.file);
sharp(`./public/uploads/${req.file.filename}`)
.resize(40,40)
.toFile(`./public/uploads/resize/${req.file.filename}`,(err,info)=>{
if(err) throw err;
console.log(info);
});
res.render(pathjoin13,{
file: `uploads/${req.file.filename}` ,
file1: `uploads/resize/${req.file.filename}`
});
}
}
});
});
1 ответ
res.render()
вызов зависит от выхода асинхронного toFile()
call, так что нужно будет перейти к обратному вызову, что-то вроде:
.toFile(`./public/uploads/resize/${req.file.filename}`,(err,info)=>{
if (err) throw err;
console.log(info);
res.render(pathjoin13,{
file: `uploads/${req.file.filename}` ,
file1: `uploads/resize/${req.file.filename}`
});
});