中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站制作的重要流程圖百度排行榜前十名

網(wǎng)站制作的重要流程圖,百度排行榜前十名,家鄉(xiāng)網(wǎng)站建設(shè),wordpress又拍云插件在go語言的開發(fā)中,當(dāng)我們在操作下載或者上傳文件對象時, 我們可以利用golang內(nèi)置的io包中的 TeeReader函數(shù)特性,高效實時計算文件的md5值。 方法如下: TeeReader高效計算文件md5示例 保存上傳文件,并使用文件的md5簽…

在go語言的開發(fā)中,當(dāng)我們在操作下載或者上傳文件對象時, 我們可以利用golang內(nèi)置的io包中的 TeeReader函數(shù)特性,高效實時計算文件的md5值。 方法如下:

TeeReader高效計算文件md5示例

保存上傳文件,并使用文件的md5簽名.擴展名 作為保存文件名,再讀取上傳文件的同時計算文件md5簽名

// 上傳文件  使用文件md5簽名.ext 作為文件名
func UploadFile(file *multipart.FileHeader) (string, error) {f, err := file.Open() // 讀取文件if err != nil {return "", fmt.Errorf("error reading multipart file: %v", err)}defer f.Close() // 創(chuàng)建文件 defer 關(guān)閉// 計算文件md5 這里使用 TreeReader的特性在拷貝文件的同時 高效計算文件md5md5 := md5.New()treeReader := io.TeeReader(f, md5)fmd5 := hex.EncodeToString(md5.Sum(nil)) // 獲取上傳文件的md5簽名字符串// 拼接目標(biāo)文件 使用文件md5簽名.ext 作為文件名dstFile := filepath.Join("upload", fmd5+filepath.Ext(file.Filename) )// 創(chuàng)建目標(biāo)文件對象dst, err := os.Create(dstFile)if err != nil {return "", fmt.Errorf("error creating dst file: %v", err)}defer dst.Close() // 創(chuàng)建文件 defer 關(guān)閉// 從treeReader將文件拷貝到目標(biāo)文件 dstif _, err = io.Copy(dst, treeReader); err != nil {return "", fmt.Errorf("error Copy file to destination: %v", err)}return dstFile, nil
}

TeeReader函數(shù)定義參考


// TeeReader returns a [Reader] that writes to w what it reads from r.
// All reads from r performed through it are matched with
// corresponding writes to w. There is no internal buffering -
// the write must complete before the read completes.
// Any error encountered while writing is reported as a read error.
func TeeReader(r Reader, w Writer) Reader {return &teeReader{r, w}
}type teeReader struct {r Readerw Writer
}func (t *teeReader) Read(p []byte) (n int, err error) {n, err = t.r.Read(p)if n > 0 {if n, err := t.w.Write(p[:n]); err != nil {return n, err}}return
}

總結(jié):golang的io包中的這個TeeReader函數(shù)給我們提供了非常高效的文件操作的同時進行其他任務(wù)的接口,利用這個特性我們可以在保存文件的同時高效的計算文件的MD5,? 也可以利用它來實時的顯示文件操作進度條等。

更多使用方法參見??go語言內(nèi)置io包中TreeReader函數(shù)的理解和使用示例_golang io.teereader-CSDN博客

http://www.risenshineclean.com/news/2883.html

相關(guān)文章:

  • 網(wǎng)站首頁優(yōu)化營銷型網(wǎng)站外包
  • 哈爾濱 房產(chǎn)網(wǎng)站建設(shè)成都seo專家
  • 軟件公司 網(wǎng)站模板網(wǎng)站外鏈平臺
  • 自己黑自己做的網(wǎng)站找相似圖片 識別
  • 石家莊網(wǎng)站建設(shè)找哪家百度推廣關(guān)鍵詞規(guī)劃師
  • 提供網(wǎng)站制作公司地址常用的關(guān)鍵詞挖掘工具
  • 舟山做網(wǎng)站seo關(guān)鍵詞排名優(yōu)化品牌
  • 網(wǎng)站 建設(shè) 標(biāo)準(zhǔn)方案網(wǎng)站平臺都有哪些
  • 網(wǎng)站橫幅js代碼如何策劃一個營銷方案
  • 做網(wǎng)站群發(fā)外鏈平臺
  • 濟南專業(yè)做網(wǎng)站的公司哪家好信息流優(yōu)化師證書
  • 怎么用flash做網(wǎng)站網(wǎng)絡(luò)營銷手段有哪些方式
  • 網(wǎng)站設(shè)計方法制作公司網(wǎng)站的公司
  • 做網(wǎng)站的哪里好站長工具seo綜合查詢columbu cat
  • 推廣做任務(wù) 有哪些網(wǎng)站南寧網(wǎng)站推廣營銷
  • 自己編輯網(wǎng)站怎么做的域名備案
  • 網(wǎng)站群建設(shè)目標(biāo)網(wǎng)絡(luò)營銷經(jīng)典案例
  • php可以做視頻網(wǎng)站如何做好網(wǎng)絡(luò)營銷工作
  • 數(shù)據(jù)庫網(wǎng)站開發(fā)外文翻譯競價托管代運營
  • 做網(wǎng)站需要租服務(wù)器嗎線上推廣平臺都有哪些
  • 自己做的網(wǎng)站怎么綁域名杭州seo網(wǎng)絡(luò)公司
  • 陵縣網(wǎng)站建設(shè)如何免費注冊網(wǎng)站
  • 網(wǎng)站開發(fā)后端是什么免費刷網(wǎng)站百度關(guān)鍵詞
  • 校史網(wǎng)站開發(fā)技術(shù)百度一下手機版首頁
  • wordpress建站數(shù)據(jù)庫軟文范例大全100
  • 動漫做h在線觀看網(wǎng)站百度一下官方網(wǎng)頁
  • 國家示范校建設(shè)成果網(wǎng)站百度快照排名
  • 網(wǎng)站建設(shè)專用圖形庫seo網(wǎng)站內(nèi)容優(yōu)化有哪些
  • 虛擬空間官網(wǎng)衡陽有實力seo優(yōu)化
  • 睢寧網(wǎng)站建設(shè)xzqjwl深圳推廣公司有哪些