UEditor + golang 实现图片上传

UEditor + golang 实现图片上传,第1张

概述UEditor官方只提供了4种语言的Demo,集成golang的资料,网上还比较少,正好我们项目用到了,对前端并不熟悉的我调试了好半天才搞出来,和大家分享一下: 如何把插件跑起来很简单,在此不再赘述,谈几个容易出bug的地方。 遇到问题1.后端配置项没有正常加载,上传插件不能正常使用! 修改:ueditor.config.js 33行  , serverUrl: URL //+ "php/cont

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.Json		file,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 string		imgfile,handler,err := r.Formfile("upfile")		if err == nil {				imgname,errUpload := ctr.UploadHandler(w,r,"act"+bson.NewObjectID().Hex(),imgfile,handler)			imgs = imgname			log.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,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 UploadimageUE	ue.Original = imgs	ue.State = "SUCCESS"	ue.Title = imgs	ue.Url = "/weixintest/upload/"+imgs	return &ue}

	

这样就能正常上传图片到编辑器了

总结

以上是内存溢出为你收集整理的UEditor + golang 实现图片上传全部内容,希望文章能够帮你解决UEditor + golang 实现图片上传所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1275603.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存