亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang實現(xiàn)文件上傳并轉(zhuǎn)存數(shù)據(jù)庫功能

 更新時間:2022年07月26日 17:17:20   作者:RazerZhang  
這篇文章主要為大家詳細介紹了golang實現(xiàn)文件上傳并轉(zhuǎn)存數(shù)據(jù)庫功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了golang實現(xiàn)文件上傳并轉(zhuǎn)存數(shù)據(jù)庫的具體代碼,供大家參考,具體內(nèi)容如下

需求

上傳圖片,且可選擇將圖片保存到數(shù)據(jù)中。

一、流程圖

二、步驟

1.上傳文件接口

獲取文件,并返回base64string流

代碼如下(示例):

func setIconPost(c *gin.Context) ?{
?? ?//獲取文件,icon實現(xiàn)對上傳文件的訪問,header是對上傳文件信息的標記
?? ?icon,header,err :=c.Request.FormFile("file")
?? ?dangerous(err)
?? ?defer icon.Close()
?? ?//path.Ext是取后綴,Tolower小寫
?? ?ext := strings.ToLower(path.Ext(header.Filename))
?? ?if header.Size>1024*1024*2{
?? ??? ?fmt.Println("文件過大")
?? ?}
?? ?buf := bytes.NewBuffer(nil)
?? ?//讀取icon的數(shù)據(jù)存入buf中
?? ?if _,err := io.Copy(buf,icon);err != nil{
?? ??? ?return
?? ?}
?? ?//將base64返回前端
?? ?renderData(c, gin.H{
?? ??? ?"base64":base64.StdEncoding.EncodeToString(buf.Bytes()),
?? ??? ?"icon-ext":ext,
?? ?},nil)
}

2.存儲數(shù)據(jù)

代碼如下(示例):

func setEntPost(c *gin.Context) ?{
?? ?var f Identical
?? ?bind(c,&f)
?? ?models.EtpSave(f.Copyright,"copyright")
?? ?models.EtpSave(f.Introduction,"introduction")
?? ?models.EtpSave(f.Icon,"icon")
?? ?models.EtpSave(f.Logo,"logo")
?? ?models.EtpSave(f.Version,"version")
?? ?models.EtpSave(f.Belong,"belong")
?? ?renderMessage(c,nil)
}

3.存儲的數(shù)據(jù)庫操作

type Etp struct {
?? ?Id ? ?int ?? ??? ?`json:"id"`
?? ?Ckey ?string ?? ?`json:"ckey"`
?? ?Cval ?string?? ?`json:"cval"`
?? ?Kind ?int ?? ??? ?`json:"kind"`
}
func EtpSave(cval, ckey string) error {
?? ?var obj Etp
?? ?//數(shù)據(jù)庫是否存在
?? ?has,err := DB["rdb"].Table("configs").Where("ckey=?",ckey).Get(&obj)
?? ?if err != nil{
?? ??? ?return err
?? ?}
?? ?//不存在
?? ?if !has {
?? ??? ?_, err = DB["rdb"].Table("configs").Where("ckey=?",ckey).Insert(Etp{
?? ??? ??? ?Ckey: ckey,
?? ??? ??? ?Cval: cval,
?? ??? ??? ?Kind: 1,
?? ??? ?})
?? ?}else{
?? ??? ?obj.Cval = cval
?? ??? ?DB["rdb"].Table("configs").Where("ckey=?",ckey).Cols("cval").Update(&obj)
?? ?}
?? ?return err
}

4.優(yōu)化

若上傳圖片稍大,在轉(zhuǎn)存MySQL時會報錯。

Data too long for column '......' at row 1

解決方法

將數(shù)據(jù)庫字段格式設置為longtext

總結(jié)

本需求主要難點在于對于golang核心庫方法的掌握,包括上傳文件,[]bytes 和 string之間的轉(zhuǎn)換。

整體框架:

一、接收文件/圖片接口
二、修改/保存圖片的接口
三、保存數(shù)據(jù)的方法

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Go實現(xiàn)各類限流的方法

    Go實現(xiàn)各類限流的方法

    這篇文章主要介紹了Go實現(xiàn)各類限流的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 一文帶你深入探索Golang操作mongodb的方法

    一文帶你深入探索Golang操作mongodb的方法

    這篇文章主要為大家詳細介紹了Golang操作mongodb的相關知識,包括:初始化項目工程、容器方式安裝mongo和調(diào)試運行和編譯運行,感興趣的小伙伴可以了解一下
    2023-02-02
  • Go實現(xiàn)并發(fā)緩存的示例代碼

    Go實現(xiàn)并發(fā)緩存的示例代碼

    高并發(fā)數(shù)據(jù)存儲是現(xiàn)代互聯(lián)網(wǎng)應用開發(fā)中常遇到的一大挑戰(zhàn),本文主要介紹了Go實現(xiàn)并發(fā)緩存的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Go語言中切片使用的注意事項小結(jié)

    Go語言中切片使用的注意事項小結(jié)

    切片是引用類型,相信對大家來說都不陌生,下面這篇文章主要給大家總結(jié)介紹了關于Go語言中切片使用的一些注意事項,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2018-01-01
  • golang設置http response響應頭與填坑記錄

    golang設置http response響應頭與填坑記錄

    這篇文章主要給大家介紹了關于golang設置http response響應頭與填坑記錄的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • golang 自旋鎖的實現(xiàn)

    golang 自旋鎖的實現(xiàn)

    這篇文章主要介紹了golang 自旋鎖的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Golang中g(shù)orm無法將字段更新為空值

    Golang中g(shù)orm無法將字段更新為空值

    本文主要介紹了Golang中g(shù)orm無法將字段更新為空值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • golang抓取網(wǎng)頁并分析頁面包含的鏈接方法

    golang抓取網(wǎng)頁并分析頁面包含的鏈接方法

    今天小編就為大家分享一篇golang抓取網(wǎng)頁并分析頁面包含的鏈接方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Go語言操作MySql數(shù)據(jù)庫的詳細指南

    Go語言操作MySql數(shù)據(jù)庫的詳細指南

    數(shù)據(jù)的持久化是程序中必不可少的,所以編程語言中對數(shù)據(jù)庫的操作是非常重要的一塊,這篇文章主要給大家介紹了關于Go語言操作MySql數(shù)據(jù)庫的相關資料,需要的朋友可以參考下
    2023-10-10
  • go json編譯原理XJSON實現(xiàn)四則運算

    go json編譯原理XJSON實現(xiàn)四則運算

    這篇文章主要為大家介紹了go json編譯原理XJSON實現(xiàn)四則運算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論