From aae2150dad88c8c8f284a709feead2816b607a98 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 15 Aug 2026 19:15:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20AgentIO=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=94=B9=E7=94=A8FormData(JSON.stringify=E4=BC=9A?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1File=E5=AF=B9=E8=B1=A1=E5=86=85=E5=AE=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bricks/agent.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/bricks/agent.js b/bricks/agent.js index 7d518ad..2a789fe 100644 --- a/bricks/agent.js +++ b/bricks/agent.js @@ -361,7 +361,19 @@ bricks.AgentIO = class extends bricks.VBox { }); this.msg_box.add_widget(mout); var hr = new bricks.HttpResponseStream(); - var resp = await hr.post(this.opts.url, {params:params}); + // 上传文件:add_files 是浏览器 File 对象,JSON 序列化会丢失内容,改用 FormData + var files = params.add_files || []; + var send_params = params; + if (files.length > 0) { + send_params = new FormData(); + Object.keys(params).forEach(function(k){ + if (k !== 'add_files' && k !== 'file_names') { + send_params.append(k, params[k]); + } + }); + files.forEach(function(f){ send_params.append('file', f); }); + } + var resp = await hr.post(this.opts.url, {params:send_params}); if (! resp) { mout.run_stopped(); return;