【问题标题】:Javascript: How to Upload a large file over HTTP using Transfer encoding headerJavascript:如何使用传输编码标头通过 HTTP 上传大文件
【发布时间】:2018-12-14 16:16:31
【问题描述】:

我们有一个用于上传文件的第三方 api,该文件需要将 Transfer-Encoding 标头设置为 chunked 但如果我设置了该标头,该标头会从标头中被忽略手动使用 xhr.setRequestHeader 。在对此进行更多调查后,我们发现用户代理负责设置此标头,但似乎用户代理仅设置 Content-Length 标头。 此外,如果我们使用以下 curl 命令上传文件,则它可以正常工作。

curl -X POST -H 'Transfer-Encoding: chunked' -H 'content-type: text/csv' -H 'filename: us-500.csv' -T './Downloads/us-500.csv'  http://serverapi:8090/upload

有人可以帮忙了解一下还有其他方法可以使用 Transfer-encoding 标头上传大文件吗?

【问题讨论】:

    标签: javascript angularjs file-upload rest-client


    【解决方案1】:

    您不能设置该标头,因为它由用户代理控制。

    有关完整的标头集,请参阅 4.6.2 W3C XMLHttpRequest Level 1 中的 setRequestHeader() 方法,并注意 Transfer-Encoding 是由用户代理控制的标头之一,以使其控制传输的这些方面。

    接受字符集 接受编码 访问控制请求标头 访问控制请求方法 联系 内容长度 曲奇饼 饼干2 日期 DNT 预计 主持人 活着 起源 推荐人 TE 预告片 传输编码 升级 用户代理 通过

    WhatWG Fetch API 生活标准中有一个类似的列表。 https://fetch.spec.whatwg.org/#terminology-headers

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 2013-10-10
      • 2017-03-25
      • 2011-07-12
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多