2021-09-10 node文件上传multer

node文件上传

body-parser 解析post数据 application/x-www-form-urlencoded

multer 解析post文件 multipart/form-data

整合1

const express= require('express');
const expressStatic = require('express-static');
const cookieParser = require('cookie-parser');
const cookieSession = require('cookie-session');
const bodyparser = require('body-parser');//不好用

var server = express();
server.listen(8989);

//1、解析cookie
var cres = 'sdsdsderrere'
server.use(cookieParser(cres))
//2、使用session
var arr =[];
for(var i=0;i<100000;i++){
    arr.push('keys'+Math.random())
}
server.use(cookieSession({
    name:'zns_sees_id',
    keys:arr,
    maxAge:2*3600*1000
}))
//3、post数据
server.use(bodyparser.urlencoded({extended:false}))
//用户请求
server.use('/',function (req,res,next) {

   console.log(req.query,req.body,req.cookies,req.session)
})
//4、static数据
server.use(expressStatic(('./www')));

在这里插入图片描述


文件上传

body-parser的用法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form action="http://localhost:8989/" method="post" >
    文件:<input type="file" name="f1">
    <input type="submit" value="上传">
</form>
</body>
</html>

const express= require('express');
const bodyparser = require('body-parser');//不好用

var server = express();
server.listen(8989);

server.use(bodyparser.urlencoded({extended:false}))

server.post('/',function (req,res) {
    console.log(req.body)//{ f1: 'timg.jpg' }
})

multer

//这里的会报错
const express= require('express');
const multer = require('multer')

var server = express();
server.listen(8989);

server.use(multer())

server.post('/',function (req,res) {
    console.log(req.body)
})

在这里插入图片描述
例子1

可生成文件,乱码随机的名字,无后缀
const express= require('express');
const multer = require('multer')
const fs = require('fs')

var server = express();
server.listen(8989);

var objMulter =multer({dest:'./www/upload/'});//保存文件到什么位置

server.use(objMulter.any())//任意类型的文件,有风险
// server.use(objMulter.single('f1'))//指定某个名字的文件

server.post('/',function (req,res) {
    console.log(req.files)
    /*
    * [ { fieldname: 'f1',
    originalname: 'timg.jpg',
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: './www/upload/',
    filename: 'eaad6f10fe9ca6fd96c877678540dae4',
    path: 'www\\upload\\eaad6f10fe9ca6fd96c877678540dae4',
    size: 28230 } ]
    * */
    
})

对生成的文件重命名
const express= require('express');
const multer = require('multer')
const fs = require('fs')
const pathLib  = require('path')

var server = express();
server.listen(8989);

var objMulter =multer({dest:'./www/upload/'});//保存文件到什么位置

server.use(objMulter.any())//任意类型的文件,有风险
// server.use(objMulter.single('f1'))//指定某个名字的文件

server.post('/',function (req,res) {
    console.log(req.files)
    /*
    * [ { fieldname: 'f1',
    originalname: 'timg.jpg',
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: './www/upload/',
    filename: 'eaad6f10fe9ca6fd96c877678540dae4',
    path: 'www\\upload\\eaad6f10fe9ca6fd96c877678540dae4',
    size: 28230 } ]
    * */
    console.log(req.files[0].originalname)
    var pathOri = req.files[0].originalname;
    //1、获取原始文件扩展名:path
    var newname = req.files[0].path + pathLib.parse(pathOri).ext;
    
    //2、重命名
    fs.rename(req.files[0].path,newname,function (err) {
        if(err){
            res.send("上传失败")
        }else{
            res.send('上传成功')
        }

    })
})

在这里插入代码片
enctype="multipart/form-data"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值