第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

最近復(fù)制的文件將所有 0 作為字節(jié)數(shù)組返回

最近復(fù)制的文件將所有 0 作為字節(jié)數(shù)組返回

Go
慕無忌1623718 2022-05-23 17:19:24
我有一個(gè) go 文件服務(wù)器,可以接收最大 10GB 的文件請求。為了保持低內(nèi)存使用率,我將多部分表單數(shù)據(jù)讀入 tmp 文件。我知道 FormFile 在幕后也是如此,但我仍然需要將其傳輸?shù)匠R?guī)文件以進(jìn)行一些上傳后處理。    f, header, err := r.FormFile("file")    if err != nil {        return nil, fmt.Errorf("could not get file from request %w", err)    }    tmpFile, err := ioutil.TempFile("", "oriio-")    if err != nil {        return nil, err    }    if _, err := io.Copy(tmpFile, f); err != nil {        return nil, fmt.Errorf("could not copy request body to file %w", err)    }在此之后,我需要獲取文件的前 261 個(gè)字節(jié)以確定它的 MIME 類型。head := make([]byte, 261)if _, err := tmpFile.Read(head); err != nil {  return nil, err}我遇到的問題是,如果我嘗試直接從 tmpFile 讀取字節(jié)數(shù)組在我打印fmt.Prinf("%x", head)又名無效數(shù)據(jù)時(shí)返回 261 0。為了驗(yàn)證數(shù)據(jù)是否有效,我將其保存到在我的系統(tǒng)中打開它的常規(guī)文件中,并且該文件(在本例中為圖像文件)完美無缺。所以這不是文件損壞的問題。為了解決這個(gè)問題,我現(xiàn)在關(guān)閉了 tmp 文件,然后再次重新打開它,這似乎可以解決所有問題。    tmpFile, err := ioutil.TempFile("", "oriio-")    if err != nil {        return nil, err    }    if _, err := io.Copy(tmpFile, f); err != nil {        return nil, fmt.Errorf("could not copy request body to file %w", err)    }    tmpFile.Close()    tmpFile, err = os.Open(tmpFile.Name())    if err != nil {        panic(err)    }    head := make([]byte, 261)    if _, err := tmpFile.Read(head); err != nil {        return nil, err    }現(xiàn)在,當(dāng)我打印出頭字節(jié)數(shù)組時(shí),就會打印出正確的內(nèi)容。為什么是這樣?我必須對原始 tmp 文件進(jìn)行某種同步或刷新以使其工作嗎?去
查看完整描述

1 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

讀取/寫入文件會更改文件中的當(dāng)前位置。復(fù)制后,tmpFile位于末尾,因此從中讀取將讀取 0 個(gè)字節(jié)。如果要從文件開頭讀取,則必須先查找:


io.Copy(tmpFile, f)

tmpFile.Seek(0,0)

tmpFile.Read(head)


查看完整回答
反對 回復(fù) 2022-05-23
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號