feat: 完善上传接口。

This commit is contained in:
YuleiLan 2020-09-17 14:54:36 +08:00
parent 4bdeaf5769
commit 74a043a5c9

View File

@ -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
}
}