完全将文件上载到磁盘中时,Multer回调

时间:2018-05-10 04:24:57

标签: node.js multer

我已经编写了multer的代码,如下所示:

const storage = multer.diskStorage({
    destination(req, file, callback) {
        callback(null, './public/images')
    },
    filename(req, file, callback) {
        profile_image = `${file.fieldname}-${Date.now()}${path.extname(file.originalname)}`;
        callback(null, profile_image)
    }
});


const xyz = (req, res) => {
    upload = multer({
        limits: {
            fileSize: 1000000,
            files: 2
        },
        storage,
        fileFilter(req, file, callback) {
            const ext = path.extname(file.originalname);
            if (ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg') {
                return callback(res.end('Only images are allowed'), null)
            }
            callback(null, true);
        }
    }).any();
upload(req, res, err => {
})

upload在上传文件时没有错误的情况下开始工作,但是当文件在磁盘中成功上传时则不会。那么有什么其他的回调我可以知道什么时候文件成功上传到磁盘?

1 个答案:

答案 0 :(得分:0)

试试这可能会解决您的问题。您可以在下面的示例中检查上传功能是否成功。

var Express = require('express');
var multer = require('multer');
var bodyParser = require('body-parser');
var app = Express();
app.use(bodyParser.json());
var Storage = multer.diskStorage({
    destination: function (req, file, callback) {
        callback(null, "./Images");
    },
    filename: function (req, file, callback) {
        callback(null, file.fieldname + "_" + Date.now() + "_" + file.originalname);
    }
});

var upload = multer({ storage: Storage }).array("imgUploader", 3); //Field name and max count

app.get("/", function (req, res) {
    res.sendFile(__dirname + "/index.html");
});

app.post("/api/Upload", function (req, res) {
    upload(req, res, function (err) {
        if (err) {
            return res.end("Something went wrong!");
        }
        return res.end("File uploaded sucessfully!.");
    });
});

app.listen(2000, function (a) {
    console.log("Listening to port 2000");
});

检查您的上传功能

upload(req, res,    err =>  {
        if (err) {
             res.end("Something went wrong!");
        }
       res.end("File uploaded sucessfully!.");
    }