Node | 文件保存正常 大小翻倍 内容不全
情况描述
以上传图片为例,原图片如低于60KB,正常保存;原图片如大于该值,例为145KB,保存后变为273KB,内容缺失,如下图
前端使用 antd 的 Upload 组件,后端使用 Express
原因分析
网上关于文件上传下载的内容很多,但没有找到同类问题
这说明代码出现了大问题
冷静 冷静
笔者遇到该问题时,项目是前后端分离开发的,先从自己身上找毛病
前端
- 源头:组件传值过程中存在问题
- 方法:拿网上博客提供的可执行案例,替换后端文件,测试一下能否正常上传;不能正常上传的话,替换前端写法
- 案例:
写给新手前端的各种文件上传攻略,从小图片到大文件断点续传
对应代码仓库
后端
- 源头:文件保存过程存在问题
- 方法:参照前端,反之
解决办法
笔者遇到的情况根源是后端在解析表单数据时…解析了两次
使用formidable
,即连写两句form.parse(req)
,删除其中一句即可
formidable: A Node.js module for parsing form data, especially file uploads.
form.parse:Parses an incoming Node.js request containing form data. If callback is provided, all fields and files are collected and passed to the callback.
祝不要有憨憨遇到同样的问题!