package controller import ( "github.com/kataras/iris/v12/mvc" "mime/multipart" "path/filepath" "xps/constant" services "xps/service" "xps/utils" ) type FileData struct { FileInfo *multipart.FileHeader FileData *multipart.File } type UploadController struct { Base Service services.UploadService } func (c *UploadController) BeforeActivation(b mvc.BeforeActivation) { b.Handle("POST", "/file", "UploadFile") b.Handle("POST", "/files", "UploadFiles") } // UploadFile :Single Upload func (c *UploadController) UploadFile() *JsonResult { ocId := c.GetCurOcId() userId := c.GetCurUserId() f, fh, err := c.Ctx.FormFile("uploadfile") if err != nil { return ResultErr(err.Error(), nil) } defer f.Close() _, err = c.Ctx.SaveFormFile(fh, filepath.Join("./public/uploads/temp", fh.Filename)) if err != nil { return ResultErr(err.Error(), nil) } fileFullPath := filepath.Join("./public/uploads/temp/", fh.Filename) targetFile := services.TargetFile{ FileName: fh.Filename, FilePath: fileFullPath, } file, err := c.Service.UploadFile(ocId, userId, constant.DOC_DIR_TEMP, targetFile) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("获取成功", file) } } // UploadFiles :Multiple Upload func (c *UploadController) UploadFiles() *JsonResult { _, files, err := utils.UploadMultiFiles(c.Ctx) if err != nil { return ResultErr(err.Error(), nil) } else { return ResultOk("获取成功", files) } }