Mar*_*dan 5 html get multipartform-data go
假设我有一个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>
Run Code Online (Sandbox Code Playgroud)
以及转码
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"))
}
}
Run Code Online (Sandbox Code Playgroud)
我如何获得"删除"的价值?
part.Header.Get("delete"))
Run Code Online (Sandbox Code Playgroud)
它不起作用
gre*_*zap 10
该部分实现了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())
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过使用该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"))
}
Run Code Online (Sandbox Code Playgroud)