使用gin组件
go get -u github.com/gin-gonic/gin
上传文件、读取文件流和保存文件
上传方法
/*
文件上传
*/
func Upload(c *gin.Context) {
file, err := c.FormFile("file")
if err != nil {
//返回错误
c.JSON(500,gin.H{
"error":"get file info fail "+err.Error()})
}
postForm := c.PostForm("password")
fmt.Println("密码为::::: "+postForm)
//输出上传时文件名
fmt.Println("上传文件名:", file.Filename)
fileContent, _ := file.Open()
byteContainer, err := ioutil.ReadAll(fileContent)
fmt.Println("接收到内容为=====::::::::",byteContainer)
c.SaveUploadedFile(file,"C:\\Users\\ydl\\Desktop\\file\\"+file.Filename)
c.JSON(http.StatusOK,gin.H{
"ok":"upload file success "})
}
main方法
//创建路由
r :=gin.Default()
v2 := r.Group("/file")
{
//限制文件大小,默认32M,限制为1M
r.MaxMultipartMemory = 1 << 20
//此处写方法名,我的方法在service包下
v2.POST("/upload",service.Upload)
}
r.Run(":8888")
测试结果