package v1 import ( "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/util/gmeta" ) // ============================== 文件上传模块(存储根目录见 file.uploadDir) ============================== // UploadFileReq 上传文件请求 // 以 multipart 表单方式提交单个文件 type UploadFileReq struct { gmeta.Meta `method:"post" path:"/api/upload/uploadFile" summary:"上传文件" permission:"sys:upload:file" log:"文件上传-上传文件" logType:"add"` File *ghttp.UploadFile `p:"file" v:"required#请选择文件" dc:"上传文件"` // 上传文件 Type string `json:"type" dc:"类型:images/files/video(前端约定,可空)"` // 文件类型 } // UploadFileRes 上传文件结果 // 供前端编辑器、上传组件使用的文件信息 type UploadFileRes struct { OriginalName string `json:"originalName"` // 原始文件名 FileExtension string `json:"fileExtension"` // 扩展名 FileType string `json:"fileType"` // MIME 类型 FileSize int64 `json:"fileSize"` // 文件大小(字节) FileName string `json:"fileName"` // 存储文件名(basename,如 32位随机.png) FilePath string `json:"filePath"` // 相对 uploadDir 的路径(入库形态) FileUrl string `json:"fileUrl"` // 文件访问地址 } // UploadFilesReq 批量上传文件请求 // 以 multipart 表单方式提交多个文件 type UploadFilesReq struct { gmeta.Meta `method:"post" path:"/api/upload/uploadFiles" summary:"批量上传文件" permission:"sys:upload:files" log:"文件上传-批量上传" logType:"add"` Files []*ghttp.UploadFile `p:"files" v:"required#请选择文件" dc:"上传文件列表"` // 上传文件列表 } // UploadFilesRes 批量上传文件结果 type UploadFilesRes struct { List []UploadFileRes `json:"list"` // 上传文件列表 }