mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-09-26 20:21:19 +08:00
54 lines
1.6 KiB
Go
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
|
|
}
|