feat: 完善上传接口。
This commit is contained in:
parent
4bdeaf5769
commit
74a043a5c9
@ -7,6 +7,7 @@ import (
|
||||
"ferry/tools/app"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
@ -27,10 +28,14 @@ import (
|
||||
|
||||
func UploadFile(c *gin.Context) {
|
||||
var (
|
||||
urlPrefix string
|
||||
tag string
|
||||
urlPrefix string
|
||||
tag string
|
||||
fileType string
|
||||
saveFilePath string
|
||||
err error
|
||||
)
|
||||
tag, _ = c.GetPostForm("type")
|
||||
fileType = c.DefaultQuery("file_type", "images")
|
||||
|
||||
if viper.GetBool("settings.domain.getHost") {
|
||||
urlPrefix = fmt.Sprintf("http://%s/", c.Request.Host)
|
||||
@ -43,40 +48,52 @@ func UploadFile(c *gin.Context) {
|
||||
}
|
||||
|
||||
if tag == "" {
|
||||
app.Error(c, 200, errors.New(""), "缺少标识")
|
||||
return
|
||||
} else {
|
||||
switch tag {
|
||||
case "1": // 单图
|
||||
files, err := c.FormFile("file")
|
||||
if err != nil {
|
||||
app.Error(c, 200, errors.New(""), "图片不能为空")
|
||||
return
|
||||
}
|
||||
// 上传文件至指定目录
|
||||
guid := uuid.New().String()
|
||||
tag = "1"
|
||||
}
|
||||
|
||||
singleFile := "static/uploadfile/" + guid + utils.GetExt(files.Filename)
|
||||
_ = c.SaveUploadedFile(files, singleFile)
|
||||
app.OK(c, urlPrefix+singleFile, "上传成功")
|
||||
saveFilePath = "static/uploadfile/" + fileType + "/"
|
||||
_, err = os.Stat(saveFilePath)
|
||||
if os.IsNotExist(err) {
|
||||
err = os.MkdirAll(saveFilePath, 0755)
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, fmt.Sprintf("创建图片目录失败,%v", err.Error()))
|
||||
return
|
||||
case "2": // 多图
|
||||
files := c.Request.MultipartForm.File["file"]
|
||||
multipartFile := make([]string, len(files))
|
||||
for _, f := range files {
|
||||
guid := uuid.New().String()
|
||||
multipartFileName := "static/uploadfile/" + guid + utils.GetExt(f.Filename)
|
||||
_ = c.SaveUploadedFile(f, multipartFileName)
|
||||
multipartFile = append(multipartFile, urlPrefix+multipartFileName)
|
||||
}
|
||||
app.OK(c, multipartFile, "上传成功")
|
||||
return
|
||||
case "3": // base64
|
||||
files, _ := c.GetPostForm("file")
|
||||
ddd, _ := base64.StdEncoding.DecodeString(files)
|
||||
guid := uuid.New().String()
|
||||
_ = ioutil.WriteFile("static/uploadfile/"+guid+".jpg", ddd, 0666)
|
||||
app.OK(c, urlPrefix+"static/uploadfile/"+guid+".jpg", "上传成功")
|
||||
}
|
||||
}
|
||||
|
||||
switch tag {
|
||||
case "1": // 单图
|
||||
files, err := c.FormFile("file")
|
||||
if err != nil {
|
||||
app.Error(c, 200, errors.New(""), "图片不能为空")
|
||||
return
|
||||
}
|
||||
// 上传文件至指定目录
|
||||
guid := uuid.New().String()
|
||||
|
||||
singleFile := saveFilePath + guid + utils.GetExt(files.Filename)
|
||||
_ = c.SaveUploadedFile(files, singleFile)
|
||||
app.OK(c, urlPrefix+singleFile, "上传成功")
|
||||
return
|
||||
case "2": // 多图
|
||||
files := c.Request.MultipartForm.File["file"]
|
||||
multipartFile := make([]string, len(files))
|
||||
for _, f := range files {
|
||||
guid := uuid.New().String()
|
||||
multipartFileName := saveFilePath + guid + utils.GetExt(f.Filename)
|
||||
_ = c.SaveUploadedFile(f, multipartFileName)
|
||||
multipartFile = append(multipartFile, urlPrefix+multipartFileName)
|
||||
}
|
||||
app.OK(c, multipartFile, "上传成功")
|
||||
return
|
||||
case "3": // base64
|
||||
files, _ := c.GetPostForm("file")
|
||||
ddd, _ := base64.StdEncoding.DecodeString(files)
|
||||
guid := uuid.New().String()
|
||||
_ = ioutil.WriteFile(saveFilePath+guid+".jpg", ddd, 0666)
|
||||
app.OK(c, urlPrefix+saveFilePath+guid+".jpg", "上传成功")
|
||||
default:
|
||||
app.Error(c, 200, errors.New(""), "标识不正确")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user