【问题标题】:uploading file with multer使用 multer 上传文件
【发布时间】:2019-07-31 12:06:04
【问题描述】:

我是一个 js 新手,我目前正在尝试使用 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 时,我会收到一条成功消息,但是 未创建包含该文件的文件夹

post request

编辑:

我设法上传了文件...我不得不在代码中更改上传目录的路径,如下所示:

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

但是uploads目录必须手动创建,如果丢失则不会自动创建...我该如何解决这个问题?

【问题讨论】:

    标签: javascript express multer uploading


    【解决方案1】:

    您可以查看此问题: https://github.com/expressjs/multer/issues/287

    它说您应该在“目标”中创建一个目录或作为先决条件。

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 2016-03-09
      • 2018-07-21
      • 2017-01-13
      • 2018-08-12
      • 2018-03-31
      • 2016-10-22
      相关资源
      最近更新 更多