From b40e856b8a6ea180ffbdeb3be07e7f5ee653875f Mon Sep 17 00:00:00 2001 From: chaos-zhu Date: Mon, 2 Feb 2026 21:33:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=BF=94=E5=9B=9Ebas?= =?UTF-8?q?e64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/upload/url.post.js | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/server/api/upload/url.post.js b/server/api/upload/url.post.js index e579ef5..d11cc7a 100644 --- a/server/api/upload/url.post.js +++ b/server/api/upload/url.post.js @@ -13,7 +13,7 @@ export default defineEventHandler(async (event) => { // 解析请求体 const body = await readBody(event) - const { url } = body + const { url, returnBase64 = false } = body if (!url) { throw createError({ @@ -188,20 +188,29 @@ export default defineEventHandler(async (event) => { await db.images.insert(imageDoc) // 返回结果 + const responseData = { + id: imageDoc._id, + uuid: imageUuid, + filename: filename, + format: finalFormat, + size: processedBuffer.length, + width: metadata.width || 0, + height: metadata.height || 0, + url: `/i/${imageUuid}.${finalFormat}`, + uploadedAt: imageDoc.uploadedAt + } + + // 如果需要返回 base64 + if (returnBase64) { + const base64 = processedBuffer.toString('base64') + const mimeType = `image/${finalFormat === 'jpg' ? 'jpeg' : finalFormat}` + responseData.base64 = `data:${mimeType};base64,${base64}` + } + return { success: true, message: '上传成功', - data: { - id: imageDoc._id, - uuid: imageUuid, - filename: filename, - format: finalFormat, - size: processedBuffer.length, - width: metadata.width || 0, - height: metadata.height || 0, - url: `/i/${imageUuid}.${finalFormat}`, - uploadedAt: imageDoc.uploadedAt - } + data: responseData } } catch (error) { if (error.statusCode) {