загрузка файла с помощью multer - PullRequest
0 голосов
/ 09 марта 2019

Я js-newbie, и в настоящее время я пытаюсь использовать multer для загрузки некоторых файлов.Вот мой код:

let express = require('express');
let im = require('imagemagick');
let gm = require("gm").subClass({
    imageMagick: true
});
let multer  = require('multer');

let app = express();

let storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, '/uploads')
    },
    filename: function (req, file, cb) {
        cb(null, file.fieldname + '-' + Date.now())
    }
});
var upload = multer({storage: storage}).single('avatar');

app.post('/', function (req, res) {
    upload(req, res, function (err) {
        if (err instanceof multer.MulterError) {
            res.json({
                success: false,
                message: 'error during uploading'
            });
        } else if (err) {
            res.json({
                success: false,
                message: 'error during uploading'
            });
        }

        res.json({
            success: true,
            message: 'Image uploaded'
        });
    })
})

app.listen(3000);

Когда я отправляю post-req с файлом (form-data), я получаю сообщение об успехе, однако папка с файлом не создается :

после запроса

РЕДАКТИРОВАТЬ:

Мне удалось загрузить файл ... Мне пришлось изменитьпуть к каталогу загрузок в коде, подобном следующему:

let storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './uploads/')
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname)
    }
});

Однако каталог uploads должен быть создан вручную, он не создается автоматически, если он отсутствует ...как мне решить эту проблему?

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете проверить эту проблему: https://github.com/expressjs/multer/issues/287

В нем говорится, что вы должны создать каталог в «месте назначения» или в качестве предварительных требований.

...