您好,登錄后才能下訂單哦!
今天小編給大家分享一下Golang如何實(shí)現(xiàn)圖片上傳功能的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
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>
a.讀取圖片代碼,用于在頁(yè)面上顯示
//讀取圖片 function loadImg(){ //獲取文件 var file = $(".up-file")[0].files[0]; //創(chuàng)建讀取文件的對(duì)象 var reader = new FileReader(); //創(chuàng)建文件讀取相關(guān)的變量 var imgFile; //為文件讀取成功設(shè)置事件 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.驗(yàn)證是否有圖片存在
//是否有圖片驗(yàn)證 function isimg(){ var img= $(".img-file").css('background-image'); if(img.indexOf("data:image")==-1&&img.indexOf(".jpg")==-1){ $(".mess").html("請(qǐng)?zhí)砑颖尘皥D片").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){ ...... } }); }
func (this *CommMethodController) UploadImg() { fileurl := this.GetString("url") DataArr := strings.Split(fileurl, ",") //去除包裝,獲取到base64編碼 imgBase64 := DataArr[1][:len(DataArr[1])-2] //base64轉(zhuǎn)碼 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) //創(chuàng)建新的 Writer 對(duì)象 _, 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() } /** *此代碼主要用于編輯圖片時(shí),刪除原有圖片 * 判斷文件是否存在 存在返回 true 不存在返回false */ func checkFileIsExist(filename string) bool { var exist = true if _, err := os.Stat(filename); os.IsNotExist(err) { exist = false } return exist }
以上就是“Golang如何實(shí)現(xiàn)圖片上傳功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。