节点中的NodeREDhttp会附加charset=utf-8,即使将ContentType设置为application



我使用以下步骤测试了NodeRED。

  • 将file.zip放在NodeRED公用文件夹上
  • 使用浏览器直接通过http://example.com/file.zip.它运行良好
  • 创建HTTP-In节点以接受来自/file.zip的GET请求HTTP节点内映像
  • 创建HTTP响应节点并设置以下响应标头HTTP响应节点映像

    Content-Dispositionattachment; filename= file.zip

    Content-Typeapplication/octet-stream

  • 当我从浏览器请求这个url时,file.zip可以下载,但无法打开(已损坏)。当我在浏览器上查看网络调试器工具时,我可以看到Content-Type响应标头是application/octet-stream; charset=utf-8,而Content-Disposition是按预期设置的。

我发现了这个问题(https://github.com/node-red/node-red/issues/1023)这已经在我的NodeRED版本0.17.5(最新)中修复了。我不确定这是否与我的问题有关。

我猜charset=utf-8是罪魁祸首。如何使用Content-Disposition:attachment; filename= file.zip在节点中通过http成功下载file.zip?

正如@hardillb所指出的,我的流没有发送任何数据。在将文件发送到http响应节点之前,我必须使用functionGlobalContext和readFileSync来加载文件的内容。

最新更新