ueditor
This commit is contained in:
@@ -2,36 +2,88 @@ package controllers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/knowledge"
|
"fmt"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
|
||||||
"github.com/astaxie/beego/server/web"
|
"github.com/astaxie/beego/server/web"
|
||||||
"mime/multipart"
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"regexp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type KnowUploadController struct {
|
type KnowUploadController struct {
|
||||||
web.Controller
|
web.Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *KnowUploadController) SnsUploadImg() {
|
func (ue *KnowUploadController) SnsUploadImg() {
|
||||||
callResult := &CallResult{}
|
//callResult := &CallResult{}
|
||||||
var files []*multipart.FileHeader
|
//var files []*multipart.FileHeader
|
||||||
if c.Ctx.Request.MultipartForm != nil {
|
//if c.Ctx.Request.MultipartForm != nil {
|
||||||
if c.Ctx.Request.MultipartForm.File != nil {
|
// if c.Ctx.Request.MultipartForm.File != nil {
|
||||||
if len(c.Ctx.Request.MultipartForm.File) > 0 {
|
// if len(c.Ctx.Request.MultipartForm.File) > 0 {
|
||||||
files = c.Ctx.Request.MultipartForm.File["userfiles"]
|
// files = c.Ctx.Request.MultipartForm.File["userfiles"]
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//}
|
||||||
|
//isThumb, _ := c.GetBool("isThumb")
|
||||||
|
//callResult.Code = model.ErrCodeGeneralFailed
|
||||||
|
//callResult.Desc = "请上传正确文件!"
|
||||||
|
//if len(files) > 0 {
|
||||||
|
// if retVal, err := knowledge.SNSUploadImg(nil, files, isThumb); err == nil {
|
||||||
|
// data, _ := json.Marshal(retVal)
|
||||||
|
// callResult.Data = string(data)
|
||||||
|
// callResult.Code = model.ErrCodeSuccess
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//c.Data["jsonp"] = callResult
|
||||||
|
//c.ServeJSONP()
|
||||||
|
err := ue.Ctx.Request.ParseForm()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(ue.Ctx.ResponseWriter, "解析参数失败: %v", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
isThumb, _ := c.GetBool("isThumb")
|
|
||||||
callResult.Code = model.ErrCodeGeneralFailed
|
op := ue.Ctx.Request.Form.Get("action")
|
||||||
callResult.Desc = "请上传正确文件!"
|
|
||||||
if len(files) > 0 {
|
switch op {
|
||||||
if retVal, err := knowledge.SNSUploadImg(nil, files, isThumb); err == nil {
|
case "config":
|
||||||
data, _ := json.Marshal(retVal)
|
file, err := os.Open("deploy/config.json")
|
||||||
callResult.Data = string(data)
|
if err != nil {
|
||||||
callResult.Code = model.ErrCodeSuccess
|
fmt.Fprintf(ue.Ctx.ResponseWriter, "打开文件错误 : %v", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
defer file.Close()
|
||||||
|
fd, err := ioutil.ReadAll(file)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(ue.Ctx.ResponseWriter, "读取文件失败 : %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
src := string(fd)
|
||||||
|
re, _ := regexp.Compile(`\/\*[\S\s]+?\*\/`) // 匹配里面的注释
|
||||||
|
src = re.ReplaceAllString(src, "")
|
||||||
|
tt := []byte(src)
|
||||||
|
var r interface{}
|
||||||
|
err = json.Unmarshal(tt, &r) //这个byte要解码
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(ue.Ctx.ResponseWriter, "json decode failed %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
tt, err = json.Marshal(r)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(ue.Ctx.ResponseWriter, "json encode failed $v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Fprint(ue.Ctx.ResponseWriter, string(tt))
|
||||||
|
// 上传图片的功能
|
||||||
|
case "uploadimage":
|
||||||
|
err := ue.Ctx.Request.ParseForm()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(ue.Ctx.ResponseWriter, "uploadimage parseform fail : %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println("打印所有的请求 : ", ue.Ctx.Request.PostForm)
|
||||||
|
fmt.Println("打印 upfile :", ue.Ctx.Request.PostForm.Get("upfile"))
|
||||||
|
default:
|
||||||
|
fmt.Fprint(ue.Ctx.ResponseWriter, `{"msg":"请求地址错误"}`)
|
||||||
}
|
}
|
||||||
c.Data["jsonp"] = callResult
|
|
||||||
c.ServeJSONP()
|
|
||||||
}
|
}
|
||||||
|
|||||||
86
deploy/config.json
Normal file
86
deploy/config.json
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
/* 前后端通信相关的配置,注释只允许使用多行方式 */
|
||||||
|
{
|
||||||
|
/* 上传图片配置项 */
|
||||||
|
"imageActionName": "uploadimage", /* 执行上传图片的action名称 */
|
||||||
|
"imageFieldName": "upfile", /* upfile提交的图片表单名称 */
|
||||||
|
"imageMaxSize": 2048000, /* 上传大小限制,单位B */
|
||||||
|
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
|
||||||
|
"imageCompressEnable": true, /* 是否压缩图片,默认是true */
|
||||||
|
"imageCompressBorder": 1600, /* 图片压缩最长边限制 */
|
||||||
|
"imageInsertAlign": "none", /* 插入的图片浮动方式 */
|
||||||
|
"imageUrlPrefix": "", /* 图片访问路径前缀 */
|
||||||
|
"imagePathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* /ueditor/jsp/upload/image上传保存路径,可以自定义保存路径和文件名格式 */
|
||||||
|
/* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
|
||||||
|
/* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
|
||||||
|
/* {time} 会替换成时间戳 */
|
||||||
|
/* {yyyy} 会替换成四位年份 */
|
||||||
|
/* {yy} 会替换成两位年份 */
|
||||||
|
/* {mm} 会替换成两位月份 */
|
||||||
|
/* {dd} 会替换成两位日期 */
|
||||||
|
/* {hh} 会替换成两位小时 */
|
||||||
|
/* {ii} 会替换成两位分钟 */
|
||||||
|
/* {ss} 会替换成两位秒 */
|
||||||
|
/* 非法字符 \ : * ? " < > | */
|
||||||
|
/* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
|
||||||
|
/* 涂鸦图片上传配置项 */
|
||||||
|
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
|
||||||
|
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
|
||||||
|
"scrawlPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||||
|
"scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
|
||||||
|
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
|
||||||
|
"scrawlInsertAlign": "none",
|
||||||
|
/* 截图工具上传 */
|
||||||
|
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
|
||||||
|
"snapscreenPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||||
|
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
|
||||||
|
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
|
||||||
|
/* 抓取远程图片配置 */
|
||||||
|
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
|
||||||
|
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
|
||||||
|
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
|
||||||
|
"catcherPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||||
|
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
|
||||||
|
"catcherMaxSize": 2048000, /* 上传大小限制,单位B */
|
||||||
|
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
|
||||||
|
/* 上传视频配置 */
|
||||||
|
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
|
||||||
|
"videoFieldName": "upfile", /* 提交的视频表单名称 */
|
||||||
|
"videoPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||||
|
"videoUrlPrefix": "", /* 视频访问路径前缀 */
|
||||||
|
"videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
|
||||||
|
"videoAllowFiles": [
|
||||||
|
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
|
||||||
|
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
|
||||||
|
/* 上传文件配置 */
|
||||||
|
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
|
||||||
|
"fileFieldName": "upfile", /* 提交的文件表单名称 */
|
||||||
|
"filePathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||||
|
"fileUrlPrefix": "", /* 文件访问路径前缀 */
|
||||||
|
"fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */
|
||||||
|
"fileAllowFiles": [
|
||||||
|
".png", ".jpg", ".jpeg", ".gif", ".bmp",
|
||||||
|
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
|
||||||
|
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
|
||||||
|
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
|
||||||
|
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
|
||||||
|
], /* 上传文件格式显示 */
|
||||||
|
/* 列出指定目录下的图片 */
|
||||||
|
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
|
||||||
|
"imageManagerListPath": "/static/upload/", /* 指定要列出图片的目录 */
|
||||||
|
"imageManagerListSize": 20, /* 每次列出文件数量 */
|
||||||
|
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
|
||||||
|
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
|
||||||
|
"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
|
||||||
|
/* 列出指定目录下的文件 */
|
||||||
|
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
|
||||||
|
"fileManagerListPath": "/static/upload/", /* 指定要列出文件的目录 */
|
||||||
|
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
|
||||||
|
"fileManagerListSize": 20, /* 每次列出文件数量 */
|
||||||
|
"fileManagerAllowFiles": [
|
||||||
|
".png", ".jpg", ".jpeg", ".gif", ".bmp",
|
||||||
|
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
|
||||||
|
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
|
||||||
|
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
|
||||||
|
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
|
||||||
|
] /* 列出的文件类型 */
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user