为了账号安全,请及时绑定邮箱和手机立即绑定

Golang GET 多部分表单数据

Golang GET 多部分表单数据

Go
慕沐林林 2021-09-20 20:29:20
假设我有一个 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"))它不工作
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您可能可以通过使用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"))

}


查看完整回答
反对 回复 2021-09-20
?
冉冉说

TA贡献1877条经验 获得超1个赞

该部分实现了 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())

   } 

}


查看完整回答
反对 回复 2021-09-20
  • 2 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信