【问题标题】:Upload file on Express.js app在 Express.js 应用上上传文件
【发布时间】:2015-06-27 02:38:36
【问题描述】:

我正在为结合了 Node.js、Express.js 和 Mongodb 的移动客户端应用程序开发 RESTful API。 现在我正在尝试处理用户个人资料图片的上传,我发现了一个名为“multer”的模块(这是 express.js 团队本身推荐的模块),它允许 express.app 处理 multipart/form-数据请求。 现在我需要测试应用程序以及上传功能,但我无法模拟 http-form 请求(通过 postman chrome 插件)。 Multer 返回此错误:

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

事实上,将http-form请求(有效)与自定义http请求进行比较,第二个没有Boundary header属性。

什么是边界属性?

【问题讨论】:

    标签: node.js file-upload express


    【解决方案1】:

    解决方案:

    1) 不要在客户端指定content-type

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

    【讨论】:

    • “不要在客户端指定内容类型”对我有用。
    【解决方案2】:

    如果您使用的是 Postman,您可以尝试删除 Header:“Content-type”:“multipart/form-data”。我删除了它,现在它可以工作了。

    【讨论】:

    • 是的,这行得通;但在实际情况中,Content-Type 标头实际上将是“multipart/form-data”。 multer 在这种情况下能正常工作吗?
    【解决方案3】:

    多部分形式的边界表示分隔文本和二进制数据的一些分隔符字符串。您可以在邮递员中执行此操作,但听起来您没有同时发送文件和文本,因此邮递员可能默认为常规形式。你有没有看到类似的东西:

    如果您在 postman 中单击预览,您可以在 Content-type 标题和正文中看到边界。

    【讨论】:

    • 另外,我发现没有必要手动指定 Content-type 属性......如果你这样做,你会得到同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2012-11-02
    相关资源
    最近更新 更多