
JS 中传 Uint8Array: var blob = new Uint8Array(await videoBlob.arrayBuffer()) handle_change_AB_time([dragStart, dragEnd, blob]) Python 中收到的实际是一个字典: def change_ABT(evt: gr.EventData): [ begintime, endtime, videoData ] = evt._data videoBytes = bytes(list(videoData.values())) 这种转换应该会有性能损失吧?怎样在 Python 直接能收到 bytes 类型的数据呢? 1 MossFox 2024 年 7 月 21 日 Uint8Array 转 JSON 就是这样。 Uint8Array(3) [ 114, 51, 4 ] > {"0":114,"1":51,"2":4} 要传二进制数据的话,能序列化在 JSON 中的只有字符串类型。如果必须在某个字段给二进制数据,用 base64 吧。后端收到的时候转回去就可以。 |
3 codehz 2024 年 7 月 21 日 所以是什么协议发送的呢,怎么发的,又是怎么接收的 |
5 renmu 2024 年 7 月 21 日 via Android 试试用 formdata 直接传文件呢 |
6 zhongzhaoguo 2024 年 7 月 22 日 你的 js 是怎么传输数据给 Python 的 |
7 lisxour 2024 年 7 月 23 日 Uint8Array 转成 Blob 再上传应该就是 bytes 吧 |
8 siluplsy OP 好像 gradio 在设计上就是用 json 来交换前后端数据的,看来只能这样了 |