golang实现文件上传功能
前端页面form表单
注意:实现文件上传的时候,form表单必须有enctype="multipart/form-data"属性;
可以自己设置上传文件的限制条件(文件大小,类型等)
控制器代码
//接收文件流并存储到本地 func (c *FileUploadController) FileHandler() { //获取上传的文件 file, head, _ := c.GetFile("fileupload") ext := path.Ext(head.Filename) //限制上传文件类型 var FileAllow map[string]bool = map[string]bool{ ".jpg": true, ".txt": true, ".png": true, ".go": true, } if _, ok := FileAllow[ext]; !ok { c.Ctx.WriteString("文件后缀名不符合上传要求") return } defer file.Close() err:=c.SaveToFile("fileupload","static/upload/"+head.Filename) if err != nil { c.Ctx.WriteString("上传文件失败") } c.Ctx.WriteString("上传文件成功") }
可以根据需求设置文件大小和文件后缀名。
需要自己设置路由