body-parser用来解析文字内容 对于上传文件则需要用到一个新的模块multer
body-parser在html中使用的application/x-www-form-urlencode
multer 在html中 enctype="mulipart/form-data"
首先安装multer
npm install multer
引入multer
multer=require("multer")
使用
server.use(multer({dest:"./上传文件夹的目录"}).any())
两个函数any()可以上传任何文件
和single("f1")用来指定上传文件的名字
显示上传的文件
req.files 显示为数组 第一个为上传的文件
fileldname
originalname 原来文件名
mimetype 编码方式
destination
filename
path 所在地址
size 大小
由于上传之后系统会将文件的名字改成一个随机的名字 这时需要将文件重新命名
需要使用一个fs模块的rename函数
const fs = require("fs");
fs.rename("原始文件名","新名字",回调函数)
获取原始文件扩展名
path模块 解析文件路径
const path = require("path")
base文件名
ext:扩展名
dir路径
name文件名不包含扩展名
新文件名 = req.files[0].path+path.parse(req.files[0].originalname);
在一般服务器中一般multer和body-parser均使用,两者配合使用
const multer = require("multer");
const = bodyParser = require("body-parser");
server .use(bodyParser.urlencoded(extended:false));
server.use(multer({dest:"./upload"}).any());