UEditor + golang 实现图片上传
来源:互联网 发布:托业网络课程 编辑:程序博客网 时间:2024/06/06 13:08
UEditor官方只提供了4种语言的Demo,集成golang的资料,网上还比较少,正好我们项目用到了,对前端并不熟悉的我调试了好半天才搞出来,和大家分享一下:
如何把插件跑起来很简单,在此不再赘述,谈几个容易出bug的地方。
遇到问题1.后端配置项没有正常加载,上传插件不能正常使用!
修改:ueditor.config.js 33行 , serverUrl: URL //+ "php/controller.php" 改为你要请求的路径: 如: serverUrl: URL + "oapi/forum/add"
这样加载插件的时候,应该可以正常访问你的action了,记住action一定要返回值,否则会提示
not import language file
跟踪代码,你会发现是ueditor.all.js 8093行 eval("("+r.responseText+")") 这里抛异常了, r.responseTest为空了,eval()遇空会抛此异常
所以action里面要response
func AddActivityUEditor(w http.ResponseWriter, r *http.Request) {log.Info("===ParseForm AddActivityUEditor===")r.ParseForm()op := r.Form.Get("action")log.Debug("action --->",op)switch op {case "config": //这里是conf/config.jsonfile, err := os.Open("./ueditor_config.json")if err != nil {log.Fatal(err)os.Exit(1)}defer file.Close()fd, err := ioutil.ReadAll(file)src := string(fd)re, _ := regexp.Compile("\\/\\*[\\S\\s]+?\\*\\/") //参考php的$CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("config.json")), true);//将php中的正则移植到go中,需要将/ \/\*[\s\S]+?\*\/ /去掉前后的/,然后将\改成2个\\//参考//去除所有尖括号内的HTML代码,并换成换行符// re, _ = regexp.Compile("\\<[\\S\\s]+?\\>")// src = re.ReplaceAllString(src, "\n")//当把<和>换成/*和*\时,斜杠/和*之间加双斜杠\\才行。src = re.ReplaceAllString(src, "")tt := []byte(src)var r interface{}json.Unmarshal(tt, &r) //这个byte要解码util.Response(w, http.StatusOK, r)
遇到问题2.图片上传成功,但是没有加入到文本
这也是个坑,必须用ueditor指定的返回格式,还必须是json格式的,看代码
case "uploadimage"://上传到图片服务器var imgs stringimgfile, handler, err := r.FormFile("upfile")if err == nil {imgName,errUpload := ctr.UploadHandler(w,r,"act"+bson.NewObjectId().Hex(),imgfile,handler)imgs = imgNamelog.Debug("===imgName ===",imgName)if errUpload != nil{log.Error("===errUpload ===",errUpload)return}}else{log.Info("===err ===",err)}//将对象赋值,并转换成流文件,再转换成json,再解码ue := getUe(imgs) //组装对象fd,err := json.Marshal(ue) //json压缩if err !=nil{log.Error(err)}src := string(fd) //转换json流文件tt := []byte(src)var r interface{}json.Unmarshal(tt, &r) //json解压log.Debug("AddActivityUEditor response ---> ",r) //打印出json对象util.Response(w, http.StatusOK, r)}}//ueditor指定返回参数,不按这个要求图片不能写入文本框type UploadimageUE struct {Url string `json:"url"`Title string `json:"title"`Original string `json:"original"`State string `json:"state"`}//组装对象func getUe(imgs string)(result *UploadimageUE){var ue UploadimageUEue.Original = imgsue.State = "SUCCESS"ue.Title = imgsue.Url = "/weixintest/upload/"+imgsreturn &ue}
这样就能正常上传图片到编辑器了
阅读全文
0 0
- UEditor + golang 实现图片上传
- 实现ueditor + 图片空间 实现图片上传
- UEditor编辑器通过实现图片上传
- ueditor - 配置实现上传图片的功能
- 使用ueditor实现多图片上传案例
- Ueditor JSP 图片上传
- UEditor上传图片错误
- uEditor独立图片上传
- ueditor图片上传配置
- UEditor图片上传
- Ueditor 图片上传配置
- Ueditor 图片自定义上传
- ueditor 上传图片错误
- UEditor 图片上传
- ueditor 异步上传图片
- UEditor上传图片配置
- UEditor 图片视频上传
- UEditor 上传图片到七牛
- 廖雪峰《python3 基础教程》读书笔记——第十九章 电子邮件
- 决策树
- ubuntu16.04配置py-faster-rcnn
- Khatri-Rao积(KR积)
- NFS(Network File System) Configuration
- UEditor + golang 实现图片上传
- Storm+Kafka+Hbase的wordcount统计
- 三步搞定Windows下的qt静态编译环境
- getAttribute&getParameter 区别
- conda 安装软件
- 使用maven创建java项目报错connect timed out
- 关于入门spring/ssm的一些个人想法
- HDU-1013-Digital Roots
- muduo源码学习(6)-锁,条件变量