91.go服務(wù)器文件上傳類型檢查

使用go開發(fā)服務(wù)端上傳文件服務(wù),當(dāng)需要客端采用form表單提交文件的方式時,form表單需要把 enctype 設(shè)置為 multipart/form-data 。
如果客端編寫疏忽,沒有設(shè)置,或設(shè)置成其他的(一般為application/x-www-form-urlencoded),服務(wù)端會不停的報錯。
此時,服務(wù)端可以在接收到訪問時做一下 request.Header 的 Content-Type 判斷。
如果不是 multipart/form-data,則判定客端設(shè)置錯誤。
獲取 Content-Type 的代碼如下:

request.Header.Get("Content-Type")

經(jīng)測試,
客端為multipart/form-data,獲得的結(jié)果是

multipart/form-data; boundary=----WebKitFormBoundary0JsnmjkAfS6UaQYa

客端未做設(shè)置,獲得的結(jié)果是

application/x-www-form-urlencoded

完整檢測代碼

        //-----客端上傳文件類型檢查 Begin----------------------

        typeArry := strings.Split(request.Header.Get("Content-Type"), ";")
        if len(typeArry) > 0 {
            if "multipart/form-data" == typeArry[0] {
                cofoxPub.LogSysPrintln("logsys", "上傳文件Content-Type檢查通過")
            } else {
                cofoxPub.CoFoxShowError(errors.New("Content-Type類型不正確"), "應(yīng)當(dāng)為multipart/form-data,當(dāng)前為", typeArry[0])
                fmt.Fprint(writer, "Content-Type類型不正確, 應(yīng)當(dāng)為multipart/form-data,當(dāng)前為", typeArry[0])
                return
            }
        } else {
            cofoxPub.CoFoxShowError(errors.New("Content-Type類型獲取失敗"), "Content-Type長度為0")
            return
        }
        //-----客端上傳文件類型檢查 End------------------------
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容