即使将Content-Type设置为application / octet-stream

时间:2017-10-24 17:36:46

标签: node-red

我通过以下步骤测试了NodeRED。

  • 将file.zip放在NodeRED公用文件夹
  • 使用浏览器直接通过http://example.com/file.zip获取此文件。它工作正常。
  • 在节点中创建HTTP以接受来自/file.zip的GET请求 HTTP In node image
  • 创建HTTP响应节点并设置以下响应标头 HTTP response node image

    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-in节点成功下载file.zip?

1 个答案:

答案 0 :(得分:0)

正如@hardillb指出的那样,我的流程没有发送任何数据。我必须使用functionGlobalContext和readFileSync加载文件的内容,然后再将其发送到http响应节点。