Merge pull request #47 from lanyulei/dev

feat: 优化上传接口,增加默认参数。
This commit is contained in:
lanyulei 2020-09-17 15:00:28 +08:00 committed by GitHub
commit 01233ea9a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 57 additions and 34 deletions

View File

@ -121,6 +121,7 @@ QQ群1127401830
* T*i 10元 * T*i 10元
* *伟 10元 * *伟 10元
* 老白@天智 20元 * 老白@天智 20元
* 劉鑫 30元
支付宝: 支付宝:

View File

@ -7,6 +7,7 @@ import (
"ferry/tools/app" "ferry/tools/app"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os"
"strings" "strings"
"github.com/spf13/viper" "github.com/spf13/viper"
@ -27,10 +28,19 @@ import (
func UploadFile(c *gin.Context) { func UploadFile(c *gin.Context) {
var ( var (
urlPrefix string urlPrefix string
tag string tag string
fileType string
saveFilePath string
err error
) )
tag, _ = c.GetPostForm("type") tag, _ = c.GetPostForm("type")
fileType = c.DefaultQuery("file_type", "images")
if fileType != "images" && fileType != "files" {
app.Error(c, -1, fmt.Errorf("上传接口目前,仅支持图片上传和文件上传"), "")
return
}
if viper.GetBool("settings.domain.getHost") { if viper.GetBool("settings.domain.getHost") {
urlPrefix = fmt.Sprintf("http://%s/", c.Request.Host) urlPrefix = fmt.Sprintf("http://%s/", c.Request.Host)
@ -43,40 +53,52 @@ func UploadFile(c *gin.Context) {
} }
if tag == "" { if tag == "" {
app.Error(c, 200, errors.New(""), "缺少标识") tag = "1"
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()
singleFile := "static/uploadfile/" + guid + utils.GetExt(files.Filename) saveFilePath = "static/uploadfile/" + fileType + "/"
_ = c.SaveUploadedFile(files, singleFile) _, err = os.Stat(saveFilePath)
app.OK(c, urlPrefix+singleFile, "上传成功") if os.IsNotExist(err) {
err = os.MkdirAll(saveFilePath, 0755)
if err != nil {
app.Error(c, -1, err, fmt.Sprintf("创建图片目录失败,%v", err.Error()))
return 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
}
} }