网站首页 > 文章中心 > 其它

go语言接收表单文件

作者:小编 更新时间:2023-10-20 19:09:59 浏览量:91人看过

golang echo(二)---请求与响应

上一章节介绍了使用echo启动一个http服务器并提供一个简单的GET接口,这一章对请求与响应做一下详细的讲解.

request是包含了当前请求信息的结构体,我们从中可以获取到前后端约定好的参数来作出相应的业务逻辑,这下面开始模拟请求

首先模拟一个添加用户的POST请求,这里使用了c.bind()这个方法,这个方法起到的作用是把表单参数或者JSON参数绑定至对应的结构体(这里必须是指针类型),字段需要一一对应,也就是说前端需要传递的表单或JSON参数名为name、age、gender才能绑定到结构体中.

此时此刻呢模拟一个GET请求用来获取用户信息

go语言接收表单文件-图1

response是包含了返回信息的结构体,echo提供了多种类型的返回结果

上面编写了处理请求的handler,这里介绍一下如何把handler注册到路由中,这里对应的就是上面handler.

关于在go语言中导入当前文件夹的步骤

①先把要导入的包go build - go install

golang获取postman传递数据的方法

http.request的三个属性Form、PostForm、MultipartForm:

Form:存储了post、put和get参数,在使用之前需要调用ParseForm方法.

PostForm:存储了post、put参数,在使用之前需要调用ParseForm方法.

MultipartForm:存储了包含了文件上传的表单的post参数,在使用前需要调用ParseMultipartForm方法.

获取Get参数

go语言接收表单文件-图2

小结:r.Form是url.Values字典类型,r.Form["id"]取到的是一个数组类型.因为http.request在解析参数的时候会将同名的参数都放进同一个数组里.

golang-gin框架参数解析

g.GetHeader("token")

g.Request.Header.Get("token")

h := HeaderParam{}?

g.ShouldBindHeader(h)? ? ? ? ? ?//使用结构体可以解析,map无效

如:测试

g.DefaultQuery("test","")

g.Query("test")

g.Request.URL.Query().Get("test")

//text类型参数

formP,ok := g.GetPostForm("test")

formP := g.DefaultPostForm("test","")

formP :=g.Request.PostForm.Get("test")

//file类型

file,err := r.FormFile("file")? ? //单个

//多个formData解析

formDatas,err := r.MultipartForm()

if err !=nil formDatas !=nil {

files := formDatas.File["files"]

textParams := formDatas.Value["params"]

}

数据解析,同一个参数,只可调用一次,不然会EOF

①.、定义结构体解析

uploadInfo :=model.UploadInfo{}

err := c.ShouldBindJSON(uploadInfo)

uploadInfo?:= make(map[string]interface{})

上传文件时,SpringMVC如何接收表单数据

用MultipartFile接收表单上传文件数据

案例:全过程

jsp

form action="${pageContext.request.contextPath }/upload" method="post" enctype="multipart/form-data"

文件:input type="file" name="uploadFile"/br/br/

文件:input type="file" name="uploadFile"/br/br/

文件:input type="file" name="uploadFile"/br/br/

input type="submit" value="上传"/

/form

SpringMVC Controller

@RequestMapping(value = "/upload",method = RequestMethod.POST)

go语言接收表单文件-图3

public String upload(@RequestParam(value = "file", required = false) MultipartFile uploadFile, HttpServletRequest request, ModelMap model) {

System.out.println("开始");

String path = request.getSession().getServletContext().getRealPath("upload");

String fileName = file.getOriginalFilename();

String fileName = new Date().getTime()+".jpg";

System.out.println(path);

File targetFile = new File(path, fileName);

if(!targetFile.exists()){

targetFile.mkdirs();

//保存

try {

file.transferTo(targetFile);

} catch (Exception e) {

e.printStackTrace();

model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);

return "uploadResult";

以上就是土嘎嘎小编为大家整理的go语言接收表单文件相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章