我正在使用 XHR 请求发送一个 blob 文件,但我需要用它发送一些其他数据;最好是一组数据。
我知道我不能只对 blob 数据调用 json_encode,因为它是二进制数据;但是有没有办法做到这一点?
编辑:我可以使用 formdata 来组合 blob 和数组吗?
我正在使用 XHR 请求发送一个 blob 文件,但我需要用它发送一些其他数据;最好是一组数据。
我知道我不能只对 blob 数据调用 json_encode,因为它是二进制数据;但是有没有办法做到这一点?
编辑:我可以使用 formdata 来组合 blob 和数组吗?
通常,您将数据编码为 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 对于单次上传来说可能是一个大尺寸。您可能需要考虑以更小的块进行分块。