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