【问题标题】:Posted file has headers added to file content发布的文件在文件内容中添加了标题
【发布时间】:2017-09-12 08:04:51
【问题描述】:

我正在尝试将文件发布到服务器。它返回 200 OK 响应,但程序无法读取文件的内容。当我在文本文件中打开它们时,我看到了边界,并且文件内容中存在一些标题。

File starts with ----------------------------802523244934076832438189
Content-Disposition: form-data; name="file"; filename="Test1.png"
Content-Type: image/png 
and Ends with ----------------------------802523244934076832438189--

我的代码如下:

 var formData = {
        file:{
            value: fs.createReadStream('./upload-folder/' + fileName),
            options: {
                filename: fileName,
                contentType: req.body.attachment.mimeType //mimeType from JSON
            }
        }
    };

   var options = {
        url: config.deployment.incidentUrl  + '/attachment?filename=' + fileName,
        method: "POST",
        headers: { ContentType: "application/json"},
        json: true,
        formData: formData
    };

request(options,
            function (error, response, body) {
                if (error) {
                    errorlog.error(`Error Message : PostAttachmentToCSMS : ${error}`);
                }
                else {
                    successlog.info(`Attachment posted for correlation Id: ${corIdFromJira}`);
                }
            });

【问题讨论】:

    标签: node.js express post


    【解决方案1】:

    我认为这是因为使用formData 与使用json: true 是互斥的:数据是要么 multipart/form-data 编码 JSON 编码,但它可以不要两者兼而有之。 Content-Type 标头也不正确(尽管拼写错误,所以从技术上讲不是问题)。

    试试这个:

    var options = {
      url: config.deployment.incidentUrl  + '/attachment?filename=' + fileName,
      method: "POST",
      formData: formData
    };
    

    【讨论】:

    • 感谢您的回复。我已经尝试过了,但文件中仍然有额外的文本。 :(
    • @FaizaIqbal 你也控制服务器端吗?那里如何处理上传的数据?
    • 不,不幸的是我不控制服务器端。我已要求管理服务器端的人员检查请求是否得到正确处理。但根据他们的说法,附件是正确添加的,并且是 Payload 节点中包含额外信息的内容。
    • @FaizaIqbal 额外信息是意料之中的,这是文件上传的编码方式。但是,听起来服务器实际上并没有将其作为 (multipart/form-data) 文件上传来处理,甚至可能只是普通的 POST 请求。
    • 如果是这种情况,那么我可以尝试在stackoverflow.com/questions/21413709/…中提到的常规发布请求中将文件缓冲区作为正文发布
    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多