package controller import ( "yitao/ecode" "yitao/model" "yitao/util" "github.com/kataras/iris/v12/mvc" ) type FileController struct { BaseController } func (c *FileController) BeforeActivation(b mvc.BeforeActivation) { b.Handle("PUT", "/upload/item-img", "UploadItemImg") } // @Summary 上传商品图片 // @Description 上传商品图片 // @Tags file api // @Accept json // @Produce json // @Param file formData file true "图片文件" // @Success 200 {object} map[string]interface{} "{"id": 1,"key":"图片唯一标识"}" // @Failure 400 {object} map[string]interface{} "{"msg": "错误信息","code":0}" // @Router /api/file/upload/item-img [put] func (c *FileController) UploadItemImg() mvc.Result { e := ecode.OK() // 获取原文件 _, file_header, err := c.Ctx.FormFile("file") if err != nil { return ecode.Set(255, err.Error()).Response() } file, e := c.Service.File.UploadItemImg(file_header) if e.Error() { return e.Response() } // 保存文件到 ./public/upload/item/img 目录 _, err = c.Ctx.SaveFormFile(file_header, file.SystemPath) if err != nil { return ecode.Set(255, err.Error()).Response() } if !util.FileIsImage(file.SystemPath) { // 文件不是图片文件 util.DeleteFile(file.SystemPath) c.Service.File.SetFileState(file.ID, model.FileStateDelete) return ecode.File(ecode.FILE_TYPE_ERR).Response() } return mvc.Response{ Object: map[string]interface{}{ "id": file.ID, "key": file.Key, "code": 0, }, } }