如何接收数组形式的Multipart表单文件及列出所有字段键
处理multipart表单中数组形式的文件上传问题
问题原因
你用r.MultipartForm.File["files"]拿不到数据,核心问题是表单里的文件输入字段名是files[],键名必须完全匹配,不能省略方括号。
正确获取文件数组的步骤
- 首先必须调用
ParseMultipartForm解析表单,否则MultipartForm对象是空的:
// 解析multipart表单,设置内存存储上限为10MB,超出部分会写入临时文件 err := r.ParseMultipartForm(10 << 20) if err != nil { http.Error(w, "解析表单失败", http.StatusBadRequest) return }
- 使用正确的字段名
"files[]"获取文件句柄数组:
fhs := r.MultipartForm.File["files[]"] fmt.Printf("Files: %v", fhs)
如何列出所有输入/字段键
完全可以,直接遍历MultipartForm的File和Value映射就能拿到所有字段键:
// 列出所有文件类型的字段键 fmt.Println("文件字段列表:") for key := range r.MultipartForm.File { fmt.Println(key) } // 列出所有普通文本类型的字段键 fmt.Println("普通字段列表:") for key := range r.MultipartForm.Value { fmt.Println(key) }
内容的提问来源于stack exchange,提问作者clarkk
相关产品推荐
相关产品推荐

