| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /*
- * @desc:上传适配器
- * @company:云南省奇讯科技有限公司
- * @Author: yixiaohu
- * @Date: 2021/7/7 8:54
- */
- package adapter
- import (
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- )
- // FileInfo 上传的文件信息
- type FileInfo struct {
- FileName string `json:"fileName"`
- FileSize int64 `json:"fileSize"`
- FileUrl string `json:"fileUrl"`
- FileType string `json:"fileType"`
- }
- type UploadAdapter interface {
- UpImg(file *ghttp.UploadFile) (fileInfo *FileInfo, err error)
- UpFile(file *ghttp.UploadFile) (fileInfo *FileInfo, err error)
- UpImgs(files []*ghttp.UploadFile) (fileInfos []*FileInfo, err error)
- UpFiles(files []*ghttp.UploadFile) (fileInfos []*FileInfo, err error)
- }
- type upload struct {
- adapter UploadAdapter
- }
- var (
- upType = g.Cfg().GetString("upload.type")
- Upload *upload
- )
- func init() {
- var adp UploadAdapter
- switch upType {
- case "local":
- //使用本地上传
- adp = UploadLocalAdapter{
- UpPath: "/pub_upload/",
- UploadPath: g.Cfg().GetString("server.ServerRoot") + "/pub_upload/",
- }
- case "tencentCOS":
- //使用腾讯云COS上传
- adp = UploadTencentCOSAdapter{
- UpPath: g.Cfg().GetString("upload.tencentCOS.UpPath"),
- RawUrl: g.Cfg().GetString("upload.tencentCOS.RawUrl"),
- SecretID: g.Cfg().GetString("upload.tencentCOS.SecretID"),
- SecretKey: g.Cfg().GetString("upload.tencentCOS.SecretKey"),
- }
- }
- Upload = &upload{
- adapter: adp,
- }
- }
- func (u upload) UpImg(file *ghttp.UploadFile) (fileInfo *FileInfo, err error) {
- return u.adapter.UpImg(file)
- }
- func (u upload) UpFile(file *ghttp.UploadFile) (fileInfo *FileInfo, err error) {
- return u.adapter.UpFile(file)
- }
- func (u upload) UpImgs(files []*ghttp.UploadFile) (fileInfos []*FileInfo, err error) {
- return u.adapter.UpImgs(files)
- }
- func (u upload) UpFiles(files []*ghttp.UploadFile) (fileInfos []*FileInfo, err error) {
- return u.adapter.UpFiles(files)
- }
|