Multer callback, когда файл полностью загружен на диск - PullRequest
0 голосов
/ 10 мая 2018

Я написал код для 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 голосов
/ 10 мая 2018

Попробуйте, это может решить вашу проблему. Вы можете проверить успех в функции загрузки в следующем примере.

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!.");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...