import { Controller, Post, Inject, Files } from "@midwayjs/core"; import { Context } from "@midwayjs/koa"; import { UploadFileInfo } from "@midwayjs/upload"; import { UploadService } from "../service/upload.service"; @Controller("/api/upload") export class UploadController { @Inject() ctx!: Context; @Inject() uploadService!: UploadService; // 上传现场照片,返回对象 key(用于持久化)与预签名 URL(用于即时预览) @Post("/image") async uploadImage(@Files() files: UploadFileInfo[]) { const file = files && files[0]; if (!file) { return { code: 400, message: "请选择要上传的图片", data: null }; } try { const data = await this.uploadService.uploadFile(file); return { code: 200, message: "上传成功", data }; } catch (err: any) { return { code: 500, message: `图片上传失败:${err?.message || "对象存储不可用"}`, data: null }; } } }