From fd0ab123fce7edd0ee33a24a63f610eb6414d6c8 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Tue, 29 Jun 2021 16:22:22 +0800 Subject: [PATCH] ueditor --- controllers/knowledge_upload_controller.go | 96 +++++++++++++++++----- deploy/config.json | 86 +++++++++++++++++++ 2 files changed, 160 insertions(+), 22 deletions(-) create mode 100644 deploy/config.json diff --git a/controllers/knowledge_upload_controller.go b/controllers/knowledge_upload_controller.go index 812b3d852..b201733b7 100644 --- a/controllers/knowledge_upload_controller.go +++ b/controllers/knowledge_upload_controller.go @@ -2,36 +2,88 @@ package controllers import ( "encoding/json" - "git.rosy.net.cn/jx-callback/business/jxstore/knowledge" - "git.rosy.net.cn/jx-callback/business/model" + "fmt" "github.com/astaxie/beego/server/web" - "mime/multipart" + "io/ioutil" + "os" + "regexp" ) type KnowUploadController struct { web.Controller } -func (c *KnowUploadController) SnsUploadImg() { - callResult := &CallResult{} - var files []*multipart.FileHeader - if c.Ctx.Request.MultipartForm != nil { - if c.Ctx.Request.MultipartForm.File != nil { - if len(c.Ctx.Request.MultipartForm.File) > 0 { - files = c.Ctx.Request.MultipartForm.File["userfiles"] - } - } +func (ue *KnowUploadController) SnsUploadImg() { + //callResult := &CallResult{} + //var files []*multipart.FileHeader + //if c.Ctx.Request.MultipartForm != nil { + // if c.Ctx.Request.MultipartForm.File != nil { + // if len(c.Ctx.Request.MultipartForm.File) > 0 { + // 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 - 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 + + op := ue.Ctx.Request.Form.Get("action") + + switch op { + case "config": + file, err := os.Open("deploy/config.json") + if err != nil { + 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() } diff --git a/deploy/config.json b/deploy/config.json new file mode 100644 index 000000000..5ad8f7107 --- /dev/null +++ b/deploy/config.json @@ -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" + ] /* 列出的文件类型 */ +} \ No newline at end of file