代码
├── form.html
├── node_modules
├── package.json
├── package-lock.json
├── public
│ ├── doc
│ │ └── README.md
│ └── upload
│ └── 362131ec347930fab2c4dd9a708048d8
└── server.js
form.html
<html>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<h2>单图上传</h2>
<input type="file" name="logo">
<input type="submit" value="提交">
</form>
</body>
</html>
server.js
var fs = require('fs');
var express = require('express');
var multer = require('multer');
var cookieParser = require('cookie-parser');
var util = require('util');
var app = express();
// 下载的文件保存在./public/upload/中
var upload = multer({ dest: 'public/upload/' });
// 把传入的cookie填充至req.cookies中
app.use(cookieParser());
// http://127.0.0.1:8888/doc/README.md 可访问public/doc下的README.md文件
app.use(express.static('public'));
// 单图上传
app.post('/upload', upload.single('logo'), function(req, res, next){
var file = req.file;
console.log('文件类型:%s', file.mimetype);
console.log('原始文件名:%s', file.originalname);
console.log('文件大小:%s', file.size);
console.log('文件保存路径:%s', file.path);
res.send({ret_code: '0'});
});
app.get('/', function(req, res, next){
// 打印传入cookies
console.log('Cookies: ' + util.inspect(req.cookies));
res.sendFile(__dirname + '/' + 'form.html');
});
app.listen(8888);
流程
安装依赖包
npm install multer --save
npm install cookie-parser --save
上传文件后,服务器打印
Cookies: [Object: null prototype] {}
文件类型:image/png
原始文件名:2020-02-05 16-37-12屏幕截图.png
文件大小:30143
文件保存路径:public/upload/362131ec347930fab2c4dd9a708048d8
查看README.md
http://127.0.0.1:8888/doc/README.md
下载上传的问题文件
http://127.0.0.1:8888/upload/362131ec347930fab2c4dd9a708048d8
很好的资料
- https://www.runoob.com/nodejs/nodejs-express-framework.html
- https://www.cnblogs.com/chyingp/p/express-multer-file-upload.html
- http://www.expressjs.com.cn/starter/static-files.html