首页 文章资讯内容详情

golang实现图片上传

2026-06-01 2 花语

本文内容纲要:

-golang实现图片上传

golang实现图片上传

该代码为使用beego实现前后端图片上传。话不多说,直接上代码。

1.前端代码

html代码:

<div class="col-5f-ltexttext-r">背景图(必须):</div> <div class="img-box"> <label> <spanclass="copy-btnHui-iconfont"></span> <inputtype="file"class="up-file"> </label> </div> <div class="img-filecol-offset-5"> </div>

JS代码:

a.读取图片代码,用于在页面上显示。

//读取图片 functionloadImg(){ //获取文件 varfile=$(".up-file")[0].files[0]; //创建读取文件的对象 varreader=newFileReader(); //创建文件读取相关的变量 varimgFile; //为文件读取成功设置事件 reader.onload=function(e){ vare=window.event||e; imgFile=e.target.result; console.log(imgFile); $(".img-file").css({background:"url("+imgFile+")"}); isimg(); }; //正式读取文件 reader.readAsDataURL(file); }

b.验证是否有图片存在

//是否有图片验证 functionisimg(){ varimg=$(".img-file").css(background-image); if(img.indexOf("data:image")==-1&&img.indexOf(".jpg")==-1){ $(".mess").html("请添加背景图片").css("opacity",1); returnfalse; } else{ $(".mess").css("opacity",0).html(""); returntrue; } }

c.提交上传,将图片以base64编码的方式传给后端

functionaddData(){ varurl=$(".img-file").css("background-image"); vardata1=[{"name":"url","value":url}]; $.ajax({ url:"/commmethod/method/uploadimg", data:data1, type:"post", ContentType:"application/json", success:function(resp){ ...... } }); } 2.后端代码 func(this*CommMethodController)UploadImg(){ fileurl:=this.GetString("url") DataArr:=strings.Split(fileurl,",") //去除包装,获取到base64编码 imgBase64:=DataArr[1][:len(DataArr[1])-2] //base64转码 imgs,err:=base64.StdEncoding.DecodeString(imgBase64) iferr!=nil{ beego.Error("base64decodeerror:",err) } timenow:=time.Now().Unix() file,err:=os.OpenFile("./static/img/"+strconv.FormatInt(timenow,10)+".jpg",os.O_CREATE|os.O_WRONLY,0644) iferr!=nil{ beego.Debug("createfileerror:",err) } w:=bufio.NewWriter(file)//创建新的Writer对象 _,err3:=w.WriteString(string(imgs)) iferr3!=nil{ beego.Error("writeerror:",err3) } w.Flush() deferfile.Close() imgname:=strconv.FormatInt(timenow,10)+".jpg" t:=struct{ ImageNamestring`json:"imagename"` }{imgname} this.Data["json"]=t this.ServeJSON() } /** *此代码主要用于编辑图片时,删除原有图片 *判断文件是否存在存在返回true不存在返回false */ funccheckFileIsExist(filenamestring)bool{ varexist=true if_,err:=os.Stat(filename);os.IsNotExist(err){ exist=false } returnexist }

本文内容总结:golang实现图片上传,

原文链接:https://www.cnblogs.com/dfsxh/p/10248215.html