golang, multipart/form-data 的参数请求bug

1.1 请求不到POST参数的值


	supplierName := r.Request.PostFormValue("supplierName") 
	file, fileHeader, err := r.Request.FormFile("file")

	fmt.Println("supplierName:", supplierName)  // 这里打印的值为空
 

1.2 能获取的值,file与postform顺序变一下


	file, fileHeader, err := r.Request.FormFile("file")
	supplierName := r.Request.PostFormValue("supplierName") 

	fmt.Println("supplierName:", supplierName)  // 这里打印就有输出值了
 

1.3 定位原因

multipart/form-data 的方式,
r.PostForm默认为空, 需要加载r.ParseMultipartForm(defaultMaxMemory),赋值给 r.PostForm

func (r *Request) PostFormValue(key string) string {
	if r.PostForm == nil {
		r.ParseMultipartForm(defaultMaxMemory)
	}
	if vs := r.PostForm[key]; len(vs) > 0 {
		return vs[0]
	}
	return ""
}

你可能感兴趣的:(go开发)