multer上传后无法删除文件

时间:2017-09-07 10:16:30

标签: node.js express multer

我使用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可以帮帮我吗?

0 个答案:

没有答案