gpt4 book ai didi

javascript - 如何发送带有 Blob 的 http 多部分 POST 请求?

转载 作者:行者123 更新时间:2023-11-30 00:22:15 44 4
gpt4 key购买 nike

我正在使用多部分 XMLHttpRequest 在 Google Drive 帐户上上传文件,使用的语法在 google 的文档中描述:

https://developers.google.com/drive/web/manage-uploads#multipart

这是请求正文的简化示例。

--delim
Content-Type: application/json; charset=UTF-8

*metadata Json object*

--delim
Content-Type: *datatype*

*data*
--delim--

我的问题是:

  • 我正在使用 JavaScript
  • 我必须将数据作为 Blob 发送
  • 我不会使用 Google 的 JavaScript API
  • 它必须与 Internet Explorer(至少 9)兼容。

如您所见,请求由 2 个字符串组成,中间有一个 blob。
但是,如果我进行“a-”+ blob +“-b”这样的连接,我当然会得到字符串“a-[object Blob]-b”

那么,如何发送包含我的 blob 和元数据的请求?

P.S.: 我知道我可以单独发送数据,然后编辑元数据,但它需要两个请求,
一个太多了...

最佳答案

我找到了答案,我必须在 Base 64 中编码我的 Blob 的内容:

var reader = new FileReader
reader.readAsDataURL(blob)
var data = reader.result;
//don't need type informations
data = data.split(",").pop();

并且就在请求的第二部分中的“Content-Type”值之后,我添加了这一行:

'Content-Transfer-Encoding: base64'

现在可以了!

别担心,在我的代码中,我以异步方式使用了 FileReader,为了简洁起见,我在这里进行了简化。

关于javascript - 如何发送带有 Blob 的 http 多部分 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32714662/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com