0

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

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

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

4

1 回答 1

-1

通常,您将数据编码为 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 对于单次上传来说可能是一个大尺寸。您可能需要考虑以更小的块进行分块。

于 2012-12-14T11:17:50.040 回答