亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

輸入 TYPE TEXT 值表單 (enctype="multipart/form-data")

輸入 TYPE TEXT 值表單 (enctype="multipart/form-data")

Go
精慕HU 2021-12-07 16:46:40
func fupload(w http.ResponseWriter, r *http.Request) {    if r.Method == "POST" {        r.ParseForm()        company := r.FormValue("company")        fmt.Println(company)        _, header, _ := r.FormFile("upfile")        fmt.Println(header.Filename)        return    }    w.Write([]byte("<html><body>"))    w.Write([]byte(fmt.Sprintf("<form method=\"POST\" enctype=\"multipart/form-data\">")))    w.Write([]byte("Enter Company <input type=\"text\" maxlength=\"80\" size=\"80\" name=\"company\" ><br/>"))    w.Write([]byte("File to upload: <input type=\"file\" name=\"upfile\" /><br/>"))    w.Write([]byte("<input type=\"submit\"  value=\"Submit\"/>"))    w.Write([]byte("</form>"))    w.Write([]byte("</body></html>"))    return}對于輸入類型 Text (eg) Company 這里總是返回 NULL,當 enctype="multipart/form-data"
查看完整描述

2 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

ParseForm只解析查詢參數。從文檔:

ParseForm 從 URL 解析原始查詢并更新 r.Form。

對于 POST 或 PUT 請求,它還將請求正文解析為表單,并將結果放入 r.PostForm 和 r.Form 中。POST 和 PUT 正文參數優先于 r.Form 中的 URL 查詢字符串值。

如果請求正文的大小尚未受 MaxBytesReader 限制,則大小上限為 10MB。

ParseMultipartForm 自動調用 ParseForm。它是冪等的。

ParseMultipartForm如果你想處理“multipart/form-data”,要么使用,要么不調用,讓FormValue調用需要的東西。


查看完整回答
反對 回復 2021-12-07
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

是的,您應該使用 enctype="multipart/form-data"。但是,如果您已經使用了 FormValue(key string) 或 FormFile(key string) 方法,則不應使用 ParseForm() 方法。

請求.FormFile

FormFile 返回提供的表單鍵的第一個文件。如有必要,FormFile 會調用 ParseMultipartForm 和 ParseForm。

請求.FormValue

FormValue 返回查詢的命名組件的第一個值。POST 和 PUT 正文參數優先于 URL 查詢字符串值。如有必要,FormValue 會調用 ParseMultipartForm 和 ParseForm,并忽略這些函數返回的任何錯誤。如果 key 不存在,則 FormValue 返回空字符串。要訪問同一鍵的多個值,請調用 ParseForm,然后直接檢查 Request.Form。

<form action="/fupload" method="POST" enctype="multipart/form-data">

   <input type="file" name="fileupload">

</form>



file, _, err := req.FormFile("fileupload")

    switch err {

    case nil:

        defer file.Close()

        fileData, err := ioutil.ReadAll(file)

        //check err

    case http.ErrMissingFile:

        //do something

    default:

        //do something

    }


查看完整回答
反對 回復 2021-12-07
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號