package controller import ( "cold-delivery/common/file_store" "cold-delivery/conf" "fmt" "github.com/gin-gonic/gin" "github.com/google/uuid" "gogs.baozhida.cn/zoie/OAuth-core/api" "os" "path/filepath" "strings" "time" ) type UploadController struct { api.Api } // FilesUpload 文件上传 // @Summary 文件上传 // @Description 文件上传 // @Tags 工具 // @Success 200 {object} response.Response{data=string,id=string,msg=string} "{"code": 200, "data": [...]}" // @Router /api/upload [get] func (e UploadController) FilesUpload(c *gin.Context) { err := e.MakeContext(c).Errors if err != nil { e.Error(500, err, "服务初始化失败!") return } // 处理文件上传逻辑 file, err := c.FormFile("file") if err != nil { c.JSON(400, gin.H{"error": "获取文件失败!"}) return } uploadFileName := file.Filename // 获取文件名 fileType := filepath.Ext(uploadFileName) // 获取文件类型(扩展名) if err != nil { c.JSON(400, gin.H{"error": err.Error()}) return } filePath := file_store.GetCurrentDirectory() + "/uploads/" + uploadFileName err = c.SaveUploadedFile(file, filePath) if err != nil { c.JSON(400, gin.H{"error": err.Error()}) return } defer func() { os.Remove(filePath) }() filename := fmt.Sprintf("%s/%s%s", time.Now().Format("2006-01-02"), strings.Replace(uuid.New().String(), "-", "", -1), fileType) err = file_store.QiniuFileStore.UpLoad(filename, filePath) if err != nil { c.JSON(400, gin.H{"error": "文件上传失败"}) return } e.Custom(gin.H{ "code": 200, "data": conf.ExtConfig.Qiniu.Endpoint + filename, "msg": "success", }) } // ApkUpload 文件上传 // @Summary 文件上传 // @Description 文件上传 // @Tags 工具 // @Success 200 {object} response.Response{data=string,id=string,msg=string} "{"code": 200, "data": [...]}" // @Router /api/apk-upload [get] func (e UploadController) ApkUpload(c *gin.Context) { err := e.MakeContext(c).Errors if err != nil { e.Error(500, err, "服务初始化失败!") return } // 处理文件上传逻辑 file, err := c.FormFile("file") uploadFileName := file.Filename // 获取文件名 fileType := filepath.Ext(uploadFileName) // 获取文件类型(扩展名) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } if fileType != ".apk" { c.JSON(500, gin.H{"code": 200, "data": conf.ExtConfig.Apk.Path + "/" + uploadFileName, "msg": "success"}) return } filePath := conf.ExtConfig.Apk.Path + "/" + uploadFileName err = c.SaveUploadedFile(file, filePath) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } e.Custom(gin.H{ "code": 200, "data": conf.ExtConfig.Apk.Path + "/" + uploadFileName, "msg": "success", }) }