1 .设置上传文件大小
router.MaxMultipartMemory = 8 << 20
2 .
大文件触发的超时问题
1 .首先就不是比必先的,原来以为超过某一个阀值就会一定触发报错,但是现在测试出现是没有规律的。
2 .read tcp [::1]:8080->[::1]:63455: i/o timeout
3 .关键是第二天又不出错了
单个文件上传
r.MaxMultipartMemory=8<<20
r.POST("/upload",func(c *gin.Context){
file,err:=c.FormFile("file")
fmt.Println(file.Size)
// 检查下文件的大小
if err!=nil{
fmt.Println("取得时候就出了错",err)
c.String(http.StatusOK,"no")
return
}
var path=file.Filename
ok:=c.SaveUploadedFile(file,`./upload/`+path)
if ok!=nil{
fmt.Println("保存的时候报了错",ok)
c.String(http.StatusOK,"n2")
}
c.String(http.StatusOK,"lala")
})
多个文件上传
r.POST("/uploads",func(c *gin.Context){
// 上传多个文件
form,err:=c.MultipartForm()
if err!=nil{
fmt.Println("拿取多个文件出错",err)
}
files:=form.File["file"]
for _,file:=range files{
var path=file.Filename
ok:=c.SaveUploadedFile(file,`./upload/`+path)
if ok!=nil{
fmt.Println("保存的时候出错了",ok)
return
}
fmt.Println(file.Size)
}
c.String(http.StatusOK,"yes")
})
注意事项