提供文件上传及静态服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
4.7 KiB

package service
import (
"encoding/json"
"fmt"
"io/ioutil"
"regexp"
"service-api/global"
"service-api/utils/upload"
"time"
"github.com/gin-gonic/gin"
)
func UeditorAction(c *gin.Context) {
action := c.Query("action")
switch action {
//自动读入配置文件,只要初始化UEditor即会发生
case "config":
callback := c.Query("callback")
jsonByte, _ := ioutil.ReadFile("ueditor-config.json")
re, _ := regexp.Compile("\\/\\*[\\S\\s]+?\\*\\/")
jsonByte = re.ReplaceAll(jsonByte, []byte(""))
c.Writer.Write([]byte(callback + "(" + string(jsonByte) + ")"))
case "uploadimage":
{
var qiniu upload.Qiniu
//保存上传的图片
//获取上传的文件,直接可以获取表单名称对应的文件名,不用另外提取
_, fileHeader, err := c.Request.FormFile("upfile")
if err != nil {
data, _ := json.Marshal(map[string]string{
"state": fmt.Sprintf("获取文件错误: %s", err.Error()),
})
c.Writer.Write(data)
return
}
fileKey := "ue-img/" + time.Now().Format("20060102") + "/" + fileHeader.Filename
//go func(fileKey string, fileHeader *multipart.FileHeader) {
_, _, err = qiniu.UploadFile2(fileKey, fileHeader)
if err != nil {
data, _ := json.Marshal(map[string]string{
"state": fmt.Sprintf("上传文件错误: %s", err.Error()),
})
c.Writer.Write(data)
return
}
//}(fileKey, fileHeader)
data, err := json.Marshal(map[string]string{
"url": fmt.Sprintf("%s", global.MG_CONFIG.Qiniu.ImgPath+"/"+fileKey), //保存后的文件路径
"title": "", //文件描述,对图片来说在前端会添加到title属性上
"original": fileHeader.Filename, //原始文件名
"state": "SUCCESS", //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
})
if err != nil {
panic(err)
}
c.Writer.Write(data)
return
}
case "uploadvideo":
var qiniu upload.Qiniu
_, fileHeader, err := c.Request.FormFile("upfile")
if err != nil {
data, _ := json.Marshal(map[string]string{
"state": fmt.Sprintf("获取文件错误: %s", err.Error()),
})
c.Writer.Write(data)
return
}
fileKey := "ue-video/" + time.Now().Format("20060102") + "/" + fileHeader.Filename
//go func(fileKey string, fileHeader *multipart.FileHeader) {
_, _, err = qiniu.UploadFile2(fileKey, fileHeader)
if err != nil {
data, _ := json.Marshal(map[string]string{
"state": fmt.Sprintf("上传文件错误: %s", err.Error()),
})
c.Writer.Write(data)
return
}
//}(fileKey, fileHeader)
data, err := json.Marshal(map[string]string{
"url": fmt.Sprintf("%s", global.MG_CONFIG.Qiniu.ImgPath+"/"+fileKey), //保存后的文件路径
"title": "", //文件描述,对图片来说在前端会添加到title属性上
"original": fileHeader.Filename, //原始文件名
"state": "SUCCESS", //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
})
if err != nil {
panic(err)
}
_, err = c.Writer.Write(data)
case "uploadfile":
{
var qiniu upload.Qiniu
//保存上传的文件
//获取上传的文件,直接可以获取表单名称对应的文件名,不用另外提取
_, fileHeader, err := c.Request.FormFile("upfile")
if err != nil {
data, _ := json.Marshal(map[string]string{
"state": fmt.Sprintf("获取文件错误: %s", err.Error()),
})
c.Writer.Write(data)
return
}
fileKey := "ue-file/" + time.Now().Format("20060102") + "/" + fileHeader.Filename
//go func(fileKey string, fileHeader *multipart.FileHeader) {
_, _, err = qiniu.UploadFile2(fileKey, fileHeader)
if err != nil {
data, _ := json.Marshal(map[string]string{
"state": fmt.Sprintf("上传文件错误: %s", err.Error()),
})
c.Writer.Write(data)
return
}
//}(fileKey, fileHeader)
data, err := json.Marshal(map[string]string{
"url": fmt.Sprintf("%s", global.MG_CONFIG.Qiniu.ImgPath+"/"+fileKey), //保存后的文件路径
"title": "", //文件描述,对图片来说在前端会添加到title属性上
"original": fileHeader.Filename, //原始文件名
"state": "SUCCESS", //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
})
c.Writer.Write(data)
return
}
}
}