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

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

為什么上傳文件 ~2,5 MiB 或更大會(huì)導(dǎo)致連接重置?

為什么上傳文件 ~2,5 MiB 或更大會(huì)導(dǎo)致連接重置?

Go
汪汪一只貓 2022-10-17 10:12:14
我們正在嘗試通過(guò) POST 請(qǐng)求實(shí)現(xiàn)圖像上傳。我們還希望將圖像限制在 ~1,0 MiB。它適用于較小的圖像,但任何 ~2,5 MiB 或更大的東西都會(huì)導(dǎo)致連接重置。它似乎也在第一個(gè)請(qǐng)求之后向同一個(gè)處理程序發(fā)送多個(gè)請(qǐng)求。main.go:package mainimport (    "log"    "net/http")func main() {    http.HandleFunc("/", uploadHandler)    http.ListenAndServe("localhost:8080", nil)}func uploadHandler(w http.ResponseWriter, r *http.Request) {    if r.Method == "POST" {        postHandler(w, r)        return    } else {        http.ServeFile(w, r, "index.html")    }}func postHandler(w http.ResponseWriter, r *http.Request) {    // Send an error if the request is larger than 1 MiB    if r.ContentLength > 1<<20 {        // if larger than ~2,5 MiB, this will print 2 or more times        log.Println("File too large")        // And this error will never arrive, instead a Connection reset        http.Error(w, "response too large", http.StatusRequestEntityTooLarge)        return    }    return}索引.html:<!DOCTYPE html><html lang="">  <head>    <meta charset="utf-8">    <title></title>  </head>  <body>    <form method="POST" enctype="multipart/form-data">      <input type="file" accept="image/*" name="profile-picture"><br>      <button type="submit" >Upload</button>  </form>  </body></html>上傳 ~2,4 MiB 文件時(shí)的輸出$ go run main.go2021/11/23 22:00:14 File too large它還在瀏覽器中顯示“請(qǐng)求太大”上傳 ~2,5 MiB 文件時(shí)的輸出$ go run main.go2021/11/23 22:03:25 File too large2021/11/23 22:03:25 File too large瀏覽器現(xiàn)在顯示連接已重置
查看完整描述

1 回答

?
慕娘9325324

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

客戶端正在嘗試向服務(wù)器發(fā)送數(shù)據(jù)。服務(wù)器沒(méi)有讀取數(shù)據(jù),它只是查看標(biāo)題并關(guān)閉連接。客戶端將此解釋為“連接已重置”。這是你無(wú)法控制的。

不是檢查標(biāo)題,而是標(biāo)題可以撒謊,用于http.MaxBytesReader讀取實(shí)際內(nèi)容,但如果它太大,則會(huì)出錯(cuò)。

const MAX_UPLOAD_SIZE = 1<<20


func postHandler(w http.ResponseWriter, r *http.Request) {

    // Wrap the body in a reader that will error at MAX_UPLOAD_SIZE

    r.Body = http.MaxBytesReader(w, r.Body, MAX_UPLOAD_SIZE)


    // Read the body as normal. Check for an error.

    if err := r.ParseMultipartForm(MAX_UPLOAD_SIZE); err != nil {

        // We're assuming it errored because the body is too large.

        // There are other reasons it could error, you'll have to

        // look at err to figure that out.

        log.Println("File too large")

        http.Error(w, "Your file is too powerful", http.StatusRequestEntityTooLarge)

        return

    }


    fmt.Fprintf(w, "Upload successful")

}

有關(guān)更多詳細(xì)信息,請(qǐng)參閱如何在 Go 中處理文件上傳。


查看完整回答
反對(duì) 回復(fù) 2022-10-17
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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