使用Multer上传单张图片,Postman测试时req.file始终为空如何解决?
问题排查方案
- 字段名不匹配:你代码中
upload.single('file')指定了接收文件的字段名为file,请检查Postman的form-data表格里的Key列是否完全和file一致,拼写、大小写不能有任何偏差,这是这类问题最高频的出错原因。 - 请求头配置错误:不要在Postman的Headers标签页手动添加
Content-Type: multipart/form-data头。form-data类型的请求Postman会自动生成带boundary参数的Content-Type,手动添加会丢失boundary信息,导致Multer无法解析文件。 - 上传目录缺失:Multer不会自动创建你配置的
dest: 'uploads/'对应的文件夹,请手动在项目根目录创建名为uploads的文件夹,并确保Node运行进程对该目录有读写权限。 - 中间件顺序冲突:检查你全局注册的中间件,是否有
express.json()、express.urlencoded()这类仅支持解析JSON/普通表单的中间件,提前拦截了当前上传路由。这类中间件会提前消耗请求流,导致Multer拿到空请求体。可以将文件上传路由的注册放在这些全局中间件之前,或者针对上传路由单独配置中间件规则。 - Postman请求类型错误:确认Postman的Body标签页选择的是
form-data选项,而不是x-www-form-urlencoded、raw等其他类型。
内容的提问来源于stack exchange,提问作者Rox
相关产品推荐
相关产品推荐

