package handler import ( "github.com/gin-gonic/gin" "github.com/sundynix/pets-be/pkg/response" ) // Upload POST /api/upload multipart/form-data,字段名 file。 // 按 MD5 去重:相同内容直接返回已有文件,不重复上传。返回 {id,url,md5}。 func (h *Handler) Upload(c *gin.Context) { fileHeader, err := c.FormFile("file") if err != nil { response.FailParams(c, "缺少上传文件 file") return } src, err := fileHeader.Open() if err != nil { response.FailErr(c, err) return } defer src.Close() f, err := h.svc.UploadFile(src, fileHeader.Filename, fileHeader.Header.Get("Content-Type")) if err != nil { response.FailErr(c, err) return } response.OK(c, gin.H{"id": f.ID, "url": f.URL, "md5": f.MD5}) }