如何将上传的文件作为数组接收

huangapple go评论93阅读模式
英文:

How to receive uploaded files as array

问题

如何接收多部分表单,其中文件作为数组<input type="file" name="files[]">发送?

这将返回一个空结果

fhs := r.MultipartForm.File["files"]
fmt.Printf("Files: %v", fhs)

是否可以列出所有输入/字段键?

英文:

How to receive multipart form where the files are sent as an array &lt;input type=&quot;file&quot; name=&quot;files[]&quot;&gt; ?

This returns an empty result

fhs := r.MultipartForm.File[&quot;files&quot;]
fmt.Printf(&quot;Files: %v&quot;, fhs)

Is it possible to list all input/field keys?

答案1

得分: 2

在使用请求的MultipartForm字段之前,请调用ParseMultipartForm

使用以下代码获取名为files[]的表单字段的文件切片:

fhs := r.MultipartForm.File["files[]"]

通过遍历映射和切片来列出所有的值和文件:

for k, vs := range r.MultipartForm.Value {
    for _, v := range vs {
        fmt.Println("value %s: %s\n", k, v)
    }
}
for k, fs := range r.MultipartForm.File {
    for _, f := range fs {
        fmt.Println("file %s: %s\n", k, f.Filename)
    }
}
英文:

Call ParseMultipartForm before using the request's MultipartForm field.

Get the slice of files for the form field named files[] using this code:

fhs := r.MultipartForm.File[&quot;files[]&quot;]

List all values and files by ranging over the maps and slices:

for k, vs := range r.MultipartForm.Value {
	for _, v := range vs {
		fmt.Println(&quot;value %s: %s\n&quot;, k, v)
	}
}
for k, fs := range r.MultipartForm.File {
	for _, f := range fs {
		fmt.Println(&quot;file %s: %s\n&quot;, k, f.Filename)
	}
}

huangapple
  • 本文由 发表于 2022年10月13日 22:29:00
  • 转载请务必保留本文链接:https://go.coder-hub.com/74057502.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定