nodejs文件上传组件multer使用

多图上传,发送端:

var express = require('express')
var rp = require('request-promise')

var fs = require("fs");

var app = express()

app.get('/send', function(req, res, next) {
    var options = {
        method: 'POST',
        uri: 'http://127.0.0.1:3000/profile',
        formData: {
            avatar: [fs.createReadStream("./ad.jpg"), fs.createReadStream("./222.png")]
        },
        headers: {
            // 'content-type': 'application/x-www-form-urlencoded'
        }
    };

    rp(options)
        .then(function(body) {
            // POST succeeded... 
            res.send(body);
        })
        .catch(function(err) {
            // POST failed... 
            res.send(err);
        });
});


app.listen(3001);

接收端:

var express = require('express')
var multer = require('multer')
var _ = require("lodash");

var app = express()
var storage = multer.diskStorage({
    //设置上传后文件路径,uploads文件夹会自动创建。
    destination: function(req, file, cb) {
        cb(null, './uploads')
    },
    //给上传文件重命名,获取添加后缀名
    filename: function(req, file, cb) {
        var fileFormat = (file.originalname).split(".");
        cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]);
    }
});

var fileFilter = function(req, file, cb) {
        cb(null, false);   //这里设置为false则直接拒绝上传了,实际使用应为true
    }
    //添加配置文件到muler对象。
var upload = multer({
    storage: storage,
    fileFilter: fileFilter
});


var up = upload.array('avatar');

app.post('/profile', function(req, res, next) {
    // req.file 是 `avatar` 文件的信息\
    up(req, res, function(err) {
        if (err) {
            // An error occurred when uploading 
            res.send(err);
            return
        }
        res.send("upload success");
        // Everything went fine 
    })
});


app.post('/profile2', function(req, res, next) {
    // req.file 是 `avatar` 文件的信息
    console.log(req.body);
    res.json({ "succ": true, "msg": "请求成功" });
});

app.listen(3000);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python中文社区

一个实现批量抓取淘女郎写真图片的爬虫

淘女郎,也被很多人称作“网络模特”,就是专门给淘宝、天猫等线上商家拍摄图片的平面模特。 ? ? 我们将用Python3和Selenium Webdriver抓...

1936
来自专栏比原链

Bytomd 助记词恢复密钥体验指南

Gitee地址:https://gitee.com/BytomBlockchain/bytom

882
来自专栏用户2442861的专栏

qt widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后还原时界面停止刷新

t widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后...

452
来自专栏电光石火

IDEA的svn

http://ncu.dl.sourceforge.net/project/tortoisesvn/1.8.7/Application/TortoiseSVN-...

20010
来自专栏龙首琴剑庐

Spring Boot 开发应用热部署

spring-boot-devtools 实现热部署 想在Spring Boot中使用该功能非常简单,添加依赖: <!-- 热部署模块 --> <depende...

2676
来自专栏【转载】DRF+Vue+Mysql_生鲜超市系统

四、xadmin后台管理

然后运行脚本 import_category_data.py  数据就可以保存到数据库了

200
来自专栏猫哥学前班

8102 年的程序员不需要 Hosts 和 Fiddler

加入鹅厂之后,我发现团队都在用一款叫做 Whistle 的工具,起初我以为这只是一款类似 Fiddler/Charles 的普通货色。然鹅,发现下面这两种用法之...

1613
来自专栏python成长之路

模拟浏览器发送请求报文

1204
来自专栏闻道于事

Maven使用本地jar包(两种方式)

有些项目会用到一些Maven库上没有的jar包,这就需要我们自己引入了 这种情况有两种办法: 第一种方式,在pom文件中引用时使用本地路径: 首先把jar包放到...

3185
来自专栏维C果糖

详述 IntelliJ IDEA 设置 Sublime 代码颜色的方法

相信很多同学在使用 Sublime 时,看到那些五颜六色的代码感觉爽的不行,而反过来,再来看 IntelliJ IDEA 默认的代码颜色就感觉有些不爽啦!但是实...

1805

扫码关注云+社区