golang實現圖片上傳
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。## golang實現圖片上傳該代碼為使用beego實現前後端圖片上傳。話不多說,直接上代碼。#### 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>~~~JS代碼:a.讀取圖片代碼,用於在頁面上顯示。~~~javascript//讀取圖片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.驗證是否有圖片存在~~~javascript//是否有圖片驗證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編碼的方式傳給後端~~~javascriptfunction 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){ ...... } });}~~~#### 2.後端代碼~~~gofunc (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"] = tthis.ServeJSON()}/***此代碼主要用於編輯圖片時,刪除原有圖片 * 判斷檔案是否存在 存在返回 true 不存在返回false */func checkFileIsExist(filename string) bool {var exist = trueif _, err := os.Stat(filename); os.IsNotExist(err) {exist = false}return exist}~~~該DEMO使用的是原生Js,圖片通過base64編碼傳輸。>如有小夥伴對代碼有異議或建議提供的,請關注“今日頭條”的帳號“<font color=red>編程踐行者</font>”。大家一起討論,一起學習,歡迎騷擾1032 次點擊