Node | 文件保存正常 大小翻倍 内容不全

情况描述

以上传图片为例,原图片如低于60KB,正常保存;原图片如大于该值,例为145KB,保存后变为273KB,内容缺失,如下图
Node | 文件保存正常 大小翻倍 内容不全
前端使用 antd 的 Upload 组件,后端使用 Express


原因分析

网上关于文件上传下载的内容很多,但没有找到同类问题
这说明代码出现了大问题
冷静 冷静

笔者遇到该问题时,项目是前后端分离开发的,先从自己身上找毛病

前端

  1. 源头:组件传值过程中存在问题
  2. 方法:拿网上博客提供的可执行案例,替换后端文件,测试一下能否正常上传;不能正常上传的话,替换前端写法
  3. 案例:
    写给新手前端的各种文件上传攻略,从小图片到大文件断点续传
    对应代码仓库

后端

  1. 源头:文件保存过程存在问题
  2. 方法:参照前端,反之

解决办法

笔者遇到的情况根源是后端在解析表单数据时…解析了两次
使用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.

文档传送门

祝不要有憨憨遇到同样的问题!