假设我有一个html表单
<form enctype="multipart/form-data" action="http://localhost:8080/incarcat" method="post">
<input type="file" name="file" multiple="multiple"/>
<input type="checkbox" name="delete" value="delete">
<input type="submit" value="Load" />
</form>
以及下面的代码
read_form, err := req.MultipartReader()
for {
part, err_part := read_form.NextPart()
if err_part == io.EOF {
break
}
if part.FormName() == "file" {
//do something with files
} else if part.FormName() == "delete" {
//curata_folder()
log.Println("delete is: ", part.Header.Get("delete"))
}
}
我如何获得“删除”的价值?
part.Header.Get("delete"))
它不能正常工作
答案 0 :(得分:9)
该部分实现了io.Reader接口。我假设您真正要问的是如何将零件阅读器转换为字符串,如果它不是文件。你可以这样做:
for {
part, err_part := read_form.NextPart()
if err_part == io.EOF {
break
}
if part.FormName() == "delete" {
buf := new(bytes.Buffer)
buf.ReadFrom(part)
log.Println("delete is: ", buf.String())
}
}
答案 1 :(得分:6)
您可以使用request.ParseMultipartForm
方法满足自己的需求,然后像往常一样使用request.FormValue
获取值。请注意,您还可以request.MultipartForm
访问您的文件。
示例:
func(w http.ResponseWriter, r *http.Request) {
// Here the parameter is the size of the form data that should
// be loaded in memory, the remaining being put in temporary
// files
r.ParseMultipartForm(0)
fmt.Println(r.FormValue("delete"))
}