我使用multer包上传文件。我使用sharp来调整大小并复制许多文件,因此我无法删除第一个上传文件。
这是我的代码
var multer = require('multer');
var upload = multer({dest: 'upload/'});
app.route('/uploadIcon')
.post(upload.single('file'), uploadfunction);
function uploadfunction(req, res) {
var dir = './app/controllers/configs/' + req.body.domain;
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
if (!fs.existsSync(dir + '/icon.iconset')) {
fs.mkdirSync(dir + '/icon.iconset');
}
var dir_icon = dir + '/icon.iconset/';
var file = dir + '/icon.iconset/' + 'default.png';
fs.rename(req.file.path, file, function (err) {
if (err) {
console.log(err);
res.send(500);
} else {
resizeandcopy(file, dir_icon);
}
});
}
这是函数resizeandcopy。
function resizeandcopy(file, dir) {
sharp(file)
.resize(16, 16)
.toFile(dir + 'icon_16x16.png', function (err) {
});
}
我认为图像上传和处理后内存不会被清除,或者需要在处理文件后关闭事件。但我不知道如何解决这个问题。 Sb可以帮帮我吗?