中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang如何實現圖片上傳功能

發布時間:2022-05-30 09:55:46 來源:億速云 閱讀:639 作者: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

于田县| 霸州市| 孟州市| 肇州县| 郸城县| 尉氏县| 赣榆县| 密云县| 德令哈市| 甘南县| 包头市| 湘潭县| 宝山区| 靖边县| 无锡市| 察雅县| 灯塔市| 泉州市| 深圳市| 通渭县| 定西市| 保亭| 布尔津县| 大丰市| 旅游| 乌兰察布市| 黎城县| 巴彦淖尔市| 罗源县| 五大连池市| 霍邱县| 滦平县| 斗六市| 绵阳市| 山东省| 张家港市| 吉木乃县| 大足县| 井陉县| 新龙县| 宁国市|