fix: 修复FormData Buffer转换时chunk类型错误,确保所有chunk都转换为Buffer
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2025-12-29 01:59:31 +08:00
parent 477d84accc
commit f239642716

View File

@ -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<Buffer>((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);