golang gin 上传文件报错:request Content-Type isn't multipart/form-data

更新日期: 2020-07-04 阅读次数: 10144 字数: 143 分类: golang

在使用 golang gin 实现一个文件上传并解析的功能时,报错:

request Content-Type isn't multipart/form-data

模板代码

<form action="/upload" method="post">
        <input type="file" class="form-control-file" id="csv" name="csv">
        <button type="submit" class="btn btn-primary">提交</button>
</form>

golang 逻辑代码

报错处:

file, header, err := c.Request.FormFile("csv")
if err != nil {
	c.String(http.StatusBadRequest, fmt.Sprintf("file err : %s", err.Error()))
	return
}

解决方法

在 form 标签增加属性 enctype="multipart/form-data",即

<form action="/upload" method="post" enctype="multipart/form-data">

enctype 属性有哪些值

  • application/x-www-form-urlencoded (默认值):在发送前编码所有字符
  • multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
  • text/plain:空格转换为 "+" 加号,但不对特殊字符编码。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式