使用XHR发送blob和其他数据

时间:2012-12-14 10:42:21

标签: javascript xmlhttprequest blob

我正在使用XHR请求发送blob文件,但我需要发送一些其他数据;最好是一组数据。

我知道我不能只在blob数据上调用json_encode,因为它是二进制数据;但是有办法做到这一点吗?

编辑:我可以使用formdata来组合blob和数组吗?

1 个答案:

答案 0 :(得分:0)

通常,您将数据编码为base64,然后使用multipart。文件数据在base64中编码,您需要在服务器端解码。在客户端上,您可以使用window.btoa

Content-Type:multipart/form-data, boundary=xxxxxxxxx

--xxxxxxxxx
Content-Disposition: form-data; name='uploadfile'; filename='123_logo.jpg'
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
/*base64data*/`

如果附加数据很小,你可以将其设置为文件名(服务器上的自定义逻辑会解释它。否则使用multipart的另一部分。

20MB可能是单个上传的大尺寸。您可能需要考虑在较小的块中进行分块。