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

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

Golang:恐慌:運(yùn)行時(shí)錯(cuò)誤:無效的內(nèi)存地址或零指針取消引用

Golang:恐慌:運(yùn)行時(shí)錯(cuò)誤:無效的內(nèi)存地址或零指針取消引用

Go
九州編程 2021-09-10 15:35:31
在將文件上傳到我的 go 應(yīng)用程序時(shí),我遇到了恐慌。 panic: runtime error: invalid memory address or nil pointer dereference /Users/bob/Projects/go/src/github.com/zenazn/goji/web/middleware/recoverer.go:24 (0xbaf5b)    func.006: debug.PrintStack() /usr/local/go/src/pkg/runtime/panic.c:248 (0x1043d)    panic: runtime·newstackcall(d->fn, (byte*)d->args, d->siz); /usr/local/go/src/pkg/runtime/panic.c:552 (0x10eed)    panicstring: runtime·panic(err); /usr/local/go/src/pkg/runtime/os_darwin.c:454 (0xfb8e)    sigpanic: runtime·panicstring("invalid memory address or nil pointer dereference"); /usr/local/go/src/pkg/mime/multipart/multipart.go:223 (0xb6801)    (*Reader).NextPart: if r.currentPart != nil { /Users/bob/Projects/go/src/github.com/app/controllers/company_sheet_controller.go:32 (0x2ee18)    NewCompanySheet: part, err := mr.NextPart() /usr/local/go/src/pkg/net/http/server.go:1235 (0x44f00)    HandlerFunc.ServeHTTP: f(w, r) /Users/bob/Projects/go/src/github.com/zenazn/goji/web/router.go:113 (0x6bc0a)此方法處理來自多部分表單的上傳,提取文件內(nèi)容和邊界數(shù)據(jù)。在r.FormFile上請求方法用于設(shè)置文件和報(bào)頭。為了從帖子中提取額外的數(shù)據(jù),我使用r.MultipartReader. 從我看到的錯(cuò)誤描述r中,已經(jīng)聲明為ParseMultipartForm使用r.FormFile. 當(dāng)分別使用不同的請求方法執(zhí)行函數(shù)時(shí),我沒有收到任何錯(cuò)誤。r.FormFile并且r.MultipartReader隔離工作正常。我不能混合使用這兩種請求方法嗎?func Upload(r *http.Request) {  file, header, err := r.FormFile("file")  ErrorCheck(err)  mr, err := r.MultipartReader()  ErrorCheck(err)  part, err := mr.NextPart()  ErrorCheck(err)  var b bytes.Buffer  io.CopyN(&b, part, int64(1<<20))  fmt.Println(b.String())  defer file.Close()}
查看完整描述

1 回答

?
哆啦的時(shí)光機(jī)

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

您在函數(shù)的開頭調(diào)用 FormFile() 。

這會調(diào)用 ParseMultipartForm()(請參閱Request.FormFile),它會填充http.Request的 MultipartForm 字段。

現(xiàn)在MultipartReader()的文檔指出,如果要將數(shù)據(jù)作為流處理,則應(yīng)使用 MultipartReader()而不是ParseMultipartForm()。

如果 MultipartForm 字段已經(jīng)設(shè)置,查看源MultipartReader() 會返回錯(cuò)誤。

所以回答你的問題:不,你不能對同一個(gè)請求使用這兩個(gè)函數(shù)。

還有你的

defer file.Close()

應(yīng)該在您檢查 FormFile() 的錯(cuò)誤后立即關(guān)閉,否則當(dāng)您的函數(shù)發(fā)生混亂時(shí),該文件不會在垃圾收集之前關(guān)閉。


查看完整回答
反對 回復(fù) 2021-09-10
  • 1 回答
  • 0 關(guān)注
  • 270 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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