From f2396427163ec22d9fd681225fc2875f8023ba8c Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 29 Dec 2025 01:59:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DFormData=20Buffer?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E6=97=B6chunk=E7=B1=BB=E5=9E=8B=E9=94=99?= =?UTF-8?q?=E8=AF=AF=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=89=80=E6=9C=89chunk?= =?UTF-8?q?=E9=83=BD=E8=BD=AC=E6=8D=A2=E4=B8=BABuffer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/enhance/route.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/api/enhance/route.ts b/app/api/enhance/route.ts index bb1c99935..adbb7a674 100644 --- a/app/api/enhance/route.ts +++ b/app/api/enhance/route.ts @@ -296,12 +296,22 @@ export async function POST(request: NextRequest) { const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 60000); - // 将FormData转换为Buffer(form-data包是stream,需要pipe或使用getBuffer) + // 将FormData转换为Buffer(form-data包是stream) console.log("[Enhance API] 转换FormData为Buffer..."); const formDataBuffer = await new Promise((resolve, reject) => { const chunks: Buffer[] = []; - formData.on("data", (chunk: Buffer) => { - chunks.push(chunk); + formData.on("data", (chunk: any) => { + // 确保chunk是Buffer类型 + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk); + } else if (typeof chunk === "string") { + chunks.push(Buffer.from(chunk, "utf-8")); + } else if (chunk instanceof Uint8Array) { + chunks.push(Buffer.from(chunk)); + } else { + console.warn("[Enhance API] 未知的chunk类型:", typeof chunk, chunk); + chunks.push(Buffer.from(String(chunk), "utf-8")); + } }); formData.on("end", () => { console.log("[Enhance API] FormData stream结束,chunks数量:", chunks.length);