Nodejs开发技巧集锦(4):使用multiparty获取上传的表单文件
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获取上传的表单文件相关推荐
- ServletFileUpload获取上传的多个文件和数据
引言 最近工作上做的需求是整合两个项目的文件,将另外一个使用的servlet完成的两个接口的项目整合到springboot项目中.(文件上传和文件下载接口) 在整合的过程中遇到了许多问题,比如:spr ...
- php中如何上传非表单类数据,PHP Post获取不到非表单数据的问题解决办法
问题描述 在使用vue-axios向后端post数据时,PHP端获取不到post的数据. 问题解决 修改php.ini配置 找到php.ini配置文件,查找enable_post_data_readi ...
- node学习之 ---- 通过第三方库multiparty处理上传的数据和文件
1.页面部分 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF ...
- Unity 4.x游戏开发技巧集锦(内部资料)
2019独角兽企业重金招聘Python工程师标准>>> Unity 4.x游戏开发技巧集锦(内部资料) 淘宝书店地址:http://item.taobao.com/item.htm? ...
- Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机
Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现 ...
- Unity 游戏开发技巧集锦之使用cookie类型的纹理模拟云层的移动
Unity 游戏开发技巧集锦之使用cookie类型的纹理模拟云层的移动 使用cookie类型的纹理模拟云层的移动 现实生活中,当阳光直射大地,而天空中又有很多云时,云层的影子总是会投射在大地上,风吹着 ...
- Unity 游戏开发技巧集锦之创建透明的材质
Unity 游戏开发技巧集锦之创建透明的材质 Unity创建透明的材质 生活中不乏透明或者半透明的事物.例如,擦的十分干净的玻璃,看起来就是透明的:一些塑料卡片,看起来就是半透明的,如图3-23所示. ...
- Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质
Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质 创建部分光滑部分粗糙的材质 生活中,有类物体的表面既有光滑的部分,又有粗糙的部分,例如丽江的石板路,如图3-17所示,石板的表面本来是粗糙的, ...
- Unity 游戏开发技巧集锦之创建自发光材质
Unity 游戏开发技巧集锦之创建自发光材质 创建自发光材质 自发光材质(self-illuminated material)是指自己会发光的材质.生活中与之相似的例子,就是液晶显示屏上显示的信息,文 ...
最新文章
- mysql 自定义哈希函数_C++ STL无序容器自定义哈希函数和比较规则(超级详细)...
- java日志模块_Java源码初探_logging日志模块实现
- fir滤波器算法c语言程序,FIR滤波器设计C语言程序
- BT下载原理学习简介
- [Python学习笔记][第八章Python异常处理结构与程序调试]
- 爬虫python代码网易云_用python爬取网易云音乐歌曲的歌词
- 关于 onchange,onpropertychange,oninput事件
- C# 随机生成名字,电话,图像
- 三星6818芯片火焰报警器驱动的编写
- 对称、群论与魔术(五)——真实扑克牌图案的对称性探索
- IJCAI 2022 | 即插即用分类器模块:一行代码大幅提升零样本学习方法效果
- Xposed小白入门,动态修改IMEI实例代码
- C库函数——fabs()
- Windows家庭版如何打开本地组策略编辑器
- C# 彻底删除文件或目录,不可恢复,文件清除工具
- ERP在企业财务管理中的应用
- 在电影库中查找演员评分最高的5部电影
- 《知识的边界》读书笔记
- 对于干涉仪二维测向的一些要点
- 查询出每个分组中的 top n 条记录