全面解析node 表单的图片上传


Posted in Javascript onNovember 21, 2016

node 全面解析表单的图片上传 ,multiparty解析与内容类型的HTTP请求multipart/form-data,也被称为文件上传。

multiparty安装

npm install multiparty

html代码

<form action="/api/uppic" method="post" >
<input type="file" name="pic" >
<input type="submit">
</form>

node 代码

app.route('/api/uppic').post(function(req,res){
var multiparty = require('multiparty'); 
var form = new multiparty.Form();//新建表单
//设置编辑
form.encoding = 'utf-8';
//设置图片存储路径
form.uploadDir = "Uploads/gaoxiao/";
form.keepExtensions = true; //保留后缀
form.maxFieldsSize = 2*1024*1024; //内存大小
form.maxFilesSize= 5*1024*1024;//文件字节大小限制,超出会报错err
//表单解析
form.parse(req, function(err,fields,files) {
//报错处理
if(err){
console.log(err);
var u={"error" :1,"message":'请上传5M以图片'};
res.end(JSON.stringify(u));
return false;
}
//获取路径
var oldpath=files.imgFile[0]['path'];
//文件后缀处理格式
if(oldpath.indexOf('.jpg')>=0){
var suffix='.jpg'; 
}else if(oldpath.indexOf('.png')>=0){ 
var suffix='.png'; 
}else if(oldpath.indexOf('.gif')>=0){ 
var suffix='.gif'; 
}else{
var u={"error" :1,"message":'请上传正确格式'};
res.end(JSON.stringify(u));
return false;
}
var url='Uploads/gaoxiao/'+Date.now()+suffix;
var fs=require('fs');
//给图片修改名称
fs.renameSync(oldpath,url);
var u={ "error" : 0, "url" : '/'+url}
res.end(JSON.stringify(u)); 
});
});

multiparty

multiparty.Form创建一个新的形式**

encoding:用于输入表单字段集编码。默认为utf8

maxFieldsSize:限制内存的所有字段(而不是文件)的量可以以字节为单位分配。如果超过该值,一个error事件被发射。默认大小为2MB。

maxFields:限制,将发射一个前解析字段的数目error的事件。一个文件算作在这种情况下,一个字段。默认为1000。

maxFilesSize:上传文件大小限制,只有当相关autoFiles的true。限制接受合并所有文件的总字节数。如果超过该值,一个error事件被发射。默认值是无穷大。

autoFields:启用field事件和禁用part事件的字段。这是自动设置为true如果添加了一个field侦听器。

uploadDir:只有当相关autoFiles的true。目录放置文件上传。您以后可以使用移动它们fs.rename()。默认为os.tmpDir()。

form.parse(req,function(err,fields,files){})

- fields: 是一个对象(上传名称和值),其属性名的字段名称和值是字段值的数组。

- files :是一个对象(上传名称和服务器文件路径),其属性名的字段名称和值是文件对象的数组。

files内文件对象file - 具有这些属性的对象:

- fieldName-同name-此文件中的字段名

- originalFilename -文件名,对于该文件的用户的报告

- path - 在磁盘上载文件的绝对路径

- headers - 这是与该文件一起发送的HTTP头

- size -以字节的文件大小

node表单解析(multiparty)的api地址:https://www.npmjs.com/package/multiparty

以上所述是小编给大家介绍的全面解析node 表单的图片上传,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
SWFObject Flash js调用类
Jul 08 Javascript
js弹窗代码 可以指定弹出间隔
Jul 03 Javascript
jQuery+ajax实现顶一下,踩一下效果
Jul 17 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
一分钟理解js闭包
May 04 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
jquery属性,遍历,HTML操作方法详解
Sep 17 Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 Javascript
javascript函数的四种调用模式
Jan 08 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
Oct 25 Javascript
JS实现的类似微信聊天效果示例
Jan 29 Javascript
利用fecha进行JS日期处理
Nov 21 #Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 #Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 #Javascript
jQuery事件绑定方法学习总结(推荐)
Nov 21 #Javascript
js学习之----深入理解闭包
Nov 21 #Javascript
浅谈js原生拖放
Nov 21 #Javascript
weUI应用之JS常用信息提示弹层的封装
Nov 21 #Javascript
You might like
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
python3.4实现邮件发送功能
2018/05/28 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python self用法详解
2020/11/28 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
给老婆的检讨书
2015/01/27 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
2016年母亲节寄语
2015/12/04 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
深入理解Pytorch微调torchvision模型
2021/11/11 Python