Files
x_admin/server/admin/common/upload/service.go
2024-11-07 14:49:44 +08:00

54 lines
1.6 KiB
Go

package upload
import (
"mime/multipart"
"x_admin/admin/common/album"
"x_admin/plugin"
"x_admin/util/convert_util"
)
type IUploadService interface {
UploadImage(file *multipart.FileHeader, cid uint, aid uint) (res album.CommonUploadFileResp, e error)
UploadVideo(file *multipart.FileHeader, cid uint, aid uint) (res album.CommonUploadFileResp, e error)
}
var Service = NewUploadService()
// NewUploadService 初始化
func NewUploadService() *uploadService {
return &uploadService{}
}
// uploadService 上传服务实现类
type uploadService struct{}
// UploadImage 上传图片
func (upSrv uploadService) UploadImage(file *multipart.FileHeader, cid uint, aid uint) (res album.CommonUploadFileResp, e error) {
return upSrv.uploadFile(file, "image", 10, cid, aid)
}
// UploadVideo 上传视频
func (upSrv uploadService) UploadVideo(file *multipart.FileHeader, cid uint, aid uint) (res album.CommonUploadFileResp, e error) {
return upSrv.uploadFile(file, "video", 20, cid, aid)
}
// uploadFile 上传文件
func (upSrv uploadService) uploadFile(file *multipart.FileHeader, folder string, fileType int, cid uint, aid uint) (res album.CommonUploadFileResp, e error) {
var upRes *plugin.UploadFile
if upRes, e = plugin.StorageDriver.Upload(file, folder, fileType); e != nil {
return
}
var addReq album.CommonAlbumAddReq
convert_util.Copy(&addReq, upRes)
addReq.Aid = aid
addReq.Cid = cid
var albumId uint
if albumId, e = album.Service.AlbumAdd(addReq); e != nil {
return
}
convert_util.Copy(&res, addReq)
res.ID = albumId
res.Path = upRes.Path
return res, nil
}