英文:
how post files array with Go?
问题
我有一个带有许多选项的表单,可以发布帖子并上传文件,但在Go语言中,使用Request.ParseForm()只能获取第一个文件,我该如何处理文件切片呢?
在HTML中:
<form enctype="multipart/form-data" method="POST" action="/homeworks">
{{if .success}}
<p>flash success</p>
{{end}}
<div id="postform">
本次作业标题
<input type="text" name="title" />
<br>
<div class="postoption">
添加项目
<input type="text" name="option[]" />
音频文件
<input type="file" name="radio[]" />
答案
<input type="text" name="answer[]" />
</div>
</div>
<input type="submit" value="提交" />
</form>
如果我像这样做:
file, header, err := r.FormFile("file")
fmt.Println(header)
if err != nil {
panic(err)
}
它会抛出"no such file"的错误,我该如何获取文件切片呢?如果我将其更改为"radio",它可以工作,但无法获取文件切片。
英文:
i have a form with many options to post, and post files with slice,but in Go, Request.ParseForm(),only get the first file, how should i resolve with file slice?
in html
<form enctype="multipart/form-data" method="POST" action="/homeworks" >
{{if .success}}
<p>flash success</p>
{{end}}
<div id="postform">
本次作业标题
<input type="text" name="title" />
<br>
<div class="postoption">
添加项目
<input type="text" name="option[]" />
音频文件
<input type="file" name="radio[]" />
答案
<input type="text" name="answer[]" />
</div>
</div>
<input type="submit" value="提交" />
</form>
if i do like
file,header,err:=r.FormFile("file")
fmt.Println(header)
if err!=nil{
panic(err)
}
it will panic no such file, how can i get files slice. if i change it to radio ,it works,but
can not get file slice.
答案1
得分: 1
这是我处理它的方式,通过阅读formfile()
的Go源代码。
fhs := r.MultipartForm.File["radio"]
fhs
是多部分文件的FileHeader
的头部。
通过使用Open
方法,我可以获取接口file。
for i := 0; i < len(fhs); i++ {
f, err := fhs[i].Open()
}
然后我可以进行下一步操作。
英文:
that's finally how i deal with it, By reading Go source code of formfile()
fhs := r.MultipartForm.File["radio"]
fhs are the Headers of FileHeader of mutlipart .
by useing Open method, i can get the interface file
for i:=0;i<len(fhs);i++{
f,err:=fhs[i].Open()
}
then i can do the next steps.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论