使用multer搭建一个图片接收服务器
来源:互联网 发布:mikumikudance软件 编辑:程序博客网 时间:2024/05/22 11:29
为了测试图片上传插件的上传功能是否好用,最近尝试搭建了一个接收图片的服务器,因为图片上传的编码格式是form-data,所以我选择使用express+multer,实现过程中发现有几个需要注意的地方,在这里和大家分享下。
1 引入express和multer
这里没什么好说的,安装好包文件后,引入文件。
var express = require('express'), multer = require('multer');
2 设置图片的存储路径
multer方法接受一个options对象,其中就有一项dest用来设置存储路径的。这里有些同学可能会遇到疑问,发现自己使用dest接收的图片文件打不开,都是一串不知名的文件,如下图。
如果我们在后台把接收的文件对象打印出来,会发现这是因为没有为文件制定后缀名。
如果我们想进行更完整的定制,需要使用diskstorage方法,具体代码如下。
var app = express();var storge = multer.diskStorage({ 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]); }})
这样我们接收到的图片就会有后缀名了。
3 处理请求
express的路由方式很简便,代码如下
app.post('/', upload.array('files',20), function (req, res, next) { console.log(req.files); res.send('img received');})
这里需要注意的地方就是app.post方法的参数,第一个参数是客户端请求的路径,比如表单的action属性是'/',那这里的第一个参数就应该设置为'/',第二个参数也要注意,array方法的第一个参数是客户端表单的name属性,比如表单input元素的name属性是'files',这里就应该设置为‘files’,否则会报错如下信息。
4 总结
multer的使用方法主要需要注意两个地方,一是设置路径的同时需要设置后缀名,二是处理请求的时候,需要对应字段的name属性。下面附上完整代码。
var express = require('express'), multer = require('multer');var app = express();var storge = multer.diskStorage({ 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 upload = multer({storage: storge})app.use(express.static('./static'));app.post('/', upload.array('file',20), function (req, res, next) { console.log(req.files); res.send('abc');})app.listen(3000)
5 参考目录
https://github.com/expressjs/multer
http://www.cnblogs.com/chyingp/p/express-multer-file-upload.html
https://segmentfault.com/q/1010000005644324
- 使用multer搭建一个图片接收服务器
- 使用multer搭建一个图片接收服务器
- 搭建一个图片服务器
- 使用express搭建了框架后,用multer处理post请求传的文件或图片注意的问题
- Apache 搭建一个图片服务器
- FormData和multer使用的一个小坑
- 使用FastDFS搭建图片服务器
- multer使用示例
- Apache 搭建一个简单的图片服务器
- Android使用xutils图片上传和服务器接收
- Android使用xutils图片上传和服务器接收
- 使用nodejs搭建图片服务器(一)
- 记:第一次使用Nginx搭建图片服务器
- Django 搭建文件接收服务器
- nodejs使用multer上传附件
- node+express用multer上传图片或者文件到服务器及用日期命名图片存储的文件夹
- nodejs - multer模块教程,使用multer进行附件上传
- 使用 Log4j 搭建一个日志服务器
- XGBoost:参数解释
- centos安装配置hadoop超详细过程
- 李航博士的《浅谈我对机器学习的理解》 机器学习与自然语言处理
- video.js 中的属性和原生HTML5视频播放
- IDEA (或 Android Studio ) 文件名颜色分别表示的意思
- 使用multer搭建一个图片接收服务器
- iBET Malaysia Casino Sport Books Rebate 0.35% Bonus(malaysia online casino, rebate 0.35%, rebate bon
- 母牛的故事
- 使用 Spring Boot 快速构建 Spring 框架应用
- VS 引入外部静态库的坑
- TensorFlow学习笔记(5)--实现卷积神经网络(MNIST数据集)
- 关于ThreadLocal
- 计算直线的交点数 [dfs]
- 就看你们会不会box-shadow