From 73690e74343f7ba298bd856ab8d30a8545a3154b Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 29 Dec 2025 01:14:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DFormData=20Buffer?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/enhance/route.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/api/enhance/route.ts b/app/api/enhance/route.ts index 2747768..f2e1355 100644 --- a/app/api/enhance/route.ts +++ b/app/api/enhance/route.ts @@ -256,21 +256,24 @@ export async function POST(request: NextRequest) { const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 60000); - // 将FormData转换为ArrayBuffer(fetch需要) - const formDataBuffer = await new Promise((resolve, reject) => { + // 将FormData转换为Buffer(form-data包是stream) + const formDataBuffer = await new Promise((resolve, reject) => { const chunks: Buffer[] = []; formData.on("data", (chunk: Buffer) => chunks.push(chunk)); - formData.on("end", () => { - const buffer = Buffer.concat(chunks); - resolve(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)); - }); + formData.on("end", () => resolve(Buffer.concat(chunks))); formData.on("error", reject); }); + // 将Buffer转换为ArrayBuffer用于fetch + const arrayBuffer = formDataBuffer.buffer.slice( + formDataBuffer.byteOffset, + formDataBuffer.byteOffset + formDataBuffer.byteLength + ); + response = await fetch(enhanceUrl, { method: "POST", headers, - body: formDataBuffer, + body: arrayBuffer, signal: controller.signal, });