【问题标题】:separate file uploads node.js单独的文件上传 node.js
【发布时间】:2016-12-29 02:33:19
【问题描述】:

我想知道处理两个单独文件上传的最简单方法,一个用于图像,另一个用于音频。现在我正在使用 multer 并将所有分段上传上传到同一位置。我可以为两个文件上传指定不同的位置吗?

【问题讨论】:

标签: html node.js multer


【解决方案1】:

假设您要将文件保存到磁盘,您可以执行以下操作:

var storage = multer.diskStorage({
    destination: function(req, file, cb) {
        if (file.fieldname === 'image-file') {
            return cb(null, 'folder-for-image-uploads');
        }

        if (file.fieldname === 'audio-file') {
            return cb(null, 'folder-for-audio-uploads');
        }

        cb(new Error('Unknown fieldname: ' + file.fieldname));
    },
    filename: function(req, file, cb) {
        if (file.fieldname === 'image-file') {
            return cb(null, 'image-filename.jpg');
        }

        if (file.fieldname === 'audio-file') {
            return cb(null, 'audio-filename.mp3');
        }

        cb(new Error('Unknown fieldname: ' + file.fieldname));
    }
});

var upload = multer({storage: storage});

app.post('/endpoint', upload.fields([{name: 'image-file', maxCount: 1}, {name: 'audio-file', maxCount: 1}]), function(req, res) {
    // handle request, files already saved to disk
    res.sendStatus(200);
}

为此,您需要input HTML 元素的名称来匹配fieldname 属性,例如:

<form method="POST" action="/endpoint" enctype="multipart/form-data">
    <input type="file" name="image-file">
    <input type="file" name="audio-file">
    <input type="submit">Submit</input>
</form>

【讨论】:

    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    相关资源
    最近更新 更多