在Express.js应用程序上传文件

Luc*_*rzi 23 file-upload node.js express

我正在使用Node.js,Express.js和Mongodb的组合为移动客户端应用程序开发RESTful API.现在我正在尝试处理用户配置文件图像的上传,我发现了一个名为"multer"的模块(这是由express.js团队本身推荐的模块),它允许express.app处理multipart/form-数据请求.现在我需要测试应用程序,而且还需要上传功能,但我无法模拟http表单请求(通过postman chrome插件).Multer返回此错误:

[错误:多部分:未找到边界]

实际上,将http表单请求(有效)与自定义http请求进行比较,第二个请求没有Boundary标头属性.

边界属性是什么?

Xel*_*elz 57

如果您使用的是邮递员,可以尝试删除标题:"内容类型":"multipart/form-data".我删除它,现在它的工作原理.

  • 是的,这是有效的; 但在真实的单词场景中,`Content-Type`标题实际上将是'multipart/form-data'.在这种情况下,multer是否正常工作? (4认同)

Pla*_*ato 13

多部分形式的边界表示分隔文本和二进制数据的一些分隔符字符串.你可以在postman中做到这一点,但听起来你不是同时发送文件和文本,所以postman可能默认为常规形式.你看到类似的东西:

邮差外形多

如果在邮递员中单击预览,则可以在内容类型标题和正文中看到边界.

  • 此外,我发现没有必要手动指定Content-type属性...如果你这样做,你会得到相同的错误. (9认同)

小智 7

解决方案:

1)不要指定content-typeat客户

2)使用的命名convention(imageUpload)upload.single('imageUpload')相同的字段名