温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Golang如何实现图片上传功能

发布时间:2022-05-30 09:55:46 来源:亿速云 阅读:686 作者:iii 栏目:开发技术

今天小编给大家分享一下Golang如何实现图片上传功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1.前端代码

html代码:

 <div class="col-5 f-l text text-r">背景图(必须):</div>   <div class="img-box">     <label>       <span class="copy-btn Hui-iconfont"></span>       <input type="file" class="up-file">     </label>   </div>   <div class="img-file col-offset-5">   </div>

2.JS代码

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

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

b.验证是否有图片存在

//是否有图片验证 function isimg(){     var img= $(".img-file").css('background-image');       if(img.indexOf("data:image")==-1&&img.indexOf(".jpg")==-1){         $(".mess").html("请添加背景图片").css("opacity",1);         return false;     }     else{         $(".mess").css("opacity",0).html("");         return true;     } }

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

function addData(){     var url=$(".img-file").css("background-image");     var data1=[{"name":"url","value":url}];     $.ajax({         url:"/commmethod/method/uploadimg",         data:data1,         type:"post",         ContentType:"application/json",         success:function(resp){          ......         }     }); }

3.后端代码

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)     if err != nil {         beego.Error("base64 decode error:", err)     }     timenow := time.Now().Unix()     file, err := os.OpenFile("./static/img/"+strconv.FormatInt(timenow, 10)+".jpg", os.O_CREATE|os.O_WRONLY, 0644)     if err != nil {         beego.Debug("create file error:", err)     }     w := bufio.NewWriter(file) //创建新的 Writer 对象     _, err3 := w.WriteString(string(imgs))     if err3 != nil {         beego.Error("write error:", err3)     }     w.Flush()     defer file.Close()     imgname := strconv.FormatInt(timenow, 10) + ".jpg"     t := struct {         ImageName string `json:"imagename"`     }{imgname}     this.Data["json"] = t     this.ServeJSON() }   /** *此代码主要用于编辑图片时,删除原有图片  * 判断文件是否存在  存在返回 true 不存在返回false  */ func checkFileIsExist(filename string) bool {     var exist = true     if _, err := os.Stat(filename); os.IsNotExist(err) {         exist = false     }     return exist }

以上就是“Golang如何实现图片上传功能”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI