1、安装multiparty

cnpm install multiparty --save

2、引入

var multiparty = require('multiparty');
var fs = require('fs'); //文件模块

3、表格一定要含有enctype="multipart/form-data"

<form action="/doProductAdd" method="post" enctype="multipart/form-data">商品名称: <input type="text" name="title"/>商品图片: <input type="file" name="pic"/>
</form>

4、获取普通表单值和文件

    app.use('/upload',express.static('upload'));//设置虚拟静态目录var form = new multiparty.Form();//实例化表单form.uploadDir='upload';//定义上传路径为根目录/uploadform.parse(req, function (err, fields, files) {var title = fields.title[0];var pic = files.pic[0].path;//...将文件路径和标题存入数据库});

说明:实际开发中,我们经常会更换商品的图片,

1、如果用户没有更换图片,那么multiparty会自动为我们上传一个空的无效文件,我们需要将这个无效文件删除。

2、如果用户更换图片,我们需要将以前的文件删除

app.post('/doProductEdit',function (req, res) {var form = new multiparty.Form();form.uploadDir='upload';form.parse(req, function (err, fields, files) {var _id = fields._id[0];var title = fields.title[0];var pic = files.pic[0].path;//上传则有原始路径,没上传则有一个无效文件的路径//上传则原始文件不为空,没上传则为空,可以此判断用户是否更换图片var originalFileName = files.pic[0].originalFilename;//如果不为空:说明用户上传了图片,那么需要更新pic字段if(originalFileName){var setData = {title,pic}}else{//如果为空:说明用户没有上传图片,那么不需要更新pic字段var setData = {title,};//即使没有上传图片。系统会自动上传一个无效文件,因此删除fs.unlink(pic,function () {});}});
});

Nodejs开发技巧集锦(4):使用multiparty获取上传的表单文件相关推荐

  1. ServletFileUpload获取上传的多个文件和数据

    引言 最近工作上做的需求是整合两个项目的文件,将另外一个使用的servlet完成的两个接口的项目整合到springboot项目中.(文件上传和文件下载接口) 在整合的过程中遇到了许多问题,比如:spr ...

  2. php中如何上传非表单类数据,PHP Post获取不到非表单数据的问题解决办法

    问题描述 在使用vue-axios向后端post数据时,PHP端获取不到post的数据. 问题解决 修改php.ini配置 找到php.ini配置文件,查找enable_post_data_readi ...

  3. node学习之 ---- 通过第三方库multiparty处理上传的数据和文件

    1.页面部分 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF ...

  4. Unity 4.x游戏开发技巧集锦(内部资料)

    2019独角兽企业重金招聘Python工程师标准>>> Unity 4.x游戏开发技巧集锦(内部资料) 淘宝书店地址:http://item.taobao.com/item.htm? ...

  5. ​Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机

    ​Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现 ...

  6. Unity 游戏开发技巧集锦之使用cookie类型的纹理模拟云层的移动

    Unity 游戏开发技巧集锦之使用cookie类型的纹理模拟云层的移动 使用cookie类型的纹理模拟云层的移动 现实生活中,当阳光直射大地,而天空中又有很多云时,云层的影子总是会投射在大地上,风吹着 ...

  7. Unity 游戏开发技巧集锦之创建透明的材质

    Unity 游戏开发技巧集锦之创建透明的材质 Unity创建透明的材质 生活中不乏透明或者半透明的事物.例如,擦的十分干净的玻璃,看起来就是透明的:一些塑料卡片,看起来就是半透明的,如图3-23所示. ...

  8. Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质

    Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质 创建部分光滑部分粗糙的材质 生活中,有类物体的表面既有光滑的部分,又有粗糙的部分,例如丽江的石板路,如图3-17所示,石板的表面本来是粗糙的, ...

  9. Unity 游戏开发技巧集锦之创建自发光材质

    Unity 游戏开发技巧集锦之创建自发光材质 创建自发光材质 自发光材质(self-illuminated material)是指自己会发光的材质.生活中与之相似的例子,就是液晶显示屏上显示的信息,文 ...

最新文章

  1. mysql 自定义哈希函数_C++ STL无序容器自定义哈希函数和比较规则(超级详细)...
  2. java日志模块_Java源码初探_logging日志模块实现
  3. fir滤波器算法c语言程序,FIR滤波器设计C语言程序
  4. BT下载原理学习简介
  5. [Python学习笔记][第八章Python异常处理结构与程序调试]
  6. 爬虫python代码网易云_用python爬取网易云音乐歌曲的歌词
  7. 关于 onchange,onpropertychange,oninput事件
  8. C# 随机生成名字,电话,图像
  9. 三星6818芯片火焰报警器驱动的编写
  10. 对称、群论与魔术(五)——真实扑克牌图案的对称性探索
  11. IJCAI 2022 | 即插即用分类器模块:一行代码大幅提升零样本学习方法效果
  12. Xposed小白入门,动态修改IMEI实例代码
  13. C库函数——fabs()
  14. Windows家庭版如何打开本地组策略编辑器
  15. C# 彻底删除文件或目录,不可恢复,文件清除工具
  16. ERP在企业财务管理中的应用
  17. 在电影库中查找演员评分最高的5部电影
  18. 《知识的边界》读书笔记
  19. 对于干涉仪二维测向的一些要点
  20. 查询出每个分组中的 top n 条记录

热门文章

  1. IT项目紧急需求处理流程
  2. Android组件化和插件化开发
  3. c语言字符串结束符的作用
  4. Halcon模板匹配学习:find_aniso_shape_model
  5. stm32毕设 stm32的智能婴儿车系统(源码+硬件+论文)
  6. storm drpc学习
  7. 4412--SPI驱动
  8. 使用SFML框架打造属于自己的俄罗斯方块
  9. IDEA中文乱码以及运行Tomcat各种出现乱码具体解决方案
  10. 故障排查:别想甩锅给运维