上传 ( multer )
- 安装multer(body-parser组件只能处理enctype="application/x-www-form-urlencoded"编码的数据并放到req.body中)
- 给form 添加enctype="multipart/form-data" 属性
- multer({dest: './uploadImages'}) 表示上传文件路径
- multer.any()表示接收任何上传的数据
- multer会将上传的文件信息写到req.file中, 表单的文本信息放到req.body中
- 上传的文件没有后缀,path.parse(filespath).ext 能获取到后缀名
- fs.rename(oldname, newname, function(err){ })
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传demo</title>
</head>
<body>
<form action="http://localhost:8080/infor" method="post" target="stop" enctype="multipart/form-data">
<input type="value" name='account'>
<input type="file" name='user'>
<input type="submit" value="上传">
</form>
<!-- 阻止提交跳转页面 -->
<iframe name="stop" style="display:none;"></iframe>
</body>
</html>
js部分
const express=require('express');
const multer=require('multer');
const path=require('path');
const fs=require('fs');
const server=express();
server.post('/infor',multer({ dest: `${UPLOAD_PATH}/book` }).single('file'),function(req,res,next){
const newname=req.files[0].path+path.parse(req.files[0].originalname).ext
fs.rename(req.files[0].path,newname,function(err){
if(er){ }
})
})
网友评论