1.介绍
在Gin
框架中已经支持文件上传,包括单文件上传和多文件上传。
2. 单文件上传
在Gin
框架中可以通过FormFile("param")
来接收上传的单个文件信息,具体使用参考下面代码:
2.1 代码示例
package main import ( "github.com/gin-gonic/gin" "go-use/practise" ) func main() { engine := gin.Default() practise.TestRecFile(engine) _ = engine.Run() }
func TestRecFile(engine *gin.Engine) { engine.MaxMultipartMemory = 8 << 20 engine.POST("/file", func(context *gin.Context) { file, err := context.FormFile("img") if err != nil { context.JSON(500, gin.H{"err": err}) return } dst := "./tmp/"+file.Filename fmt.Println(dst) err = context.SaveUploadedFile(file, dst) if err != nil { context.JSON(500, gin.H{"err": "文件保存失败: " + err.Error()}) return } context.JSON(200, gin.H{ "msg": "success", "name": file.Filename, "size": file.Size, }) }) }
|
2.2 请求返回
3. 多文件上传
在Gin
框架中可以通过MultipartForm()
来接收上传的多个文件信息,具体使用参考下面代码:
3. 1 代码示例
package main import ( "github.com/gin-gonic/gin" "go-use/practise" ) func main() { engine := gin.Default() practise.TestRecFiles(engine) _ = engine.Run() }
func TestRecFiles(engine *gin.Engine) { engine.MaxMultipartMemory = 8 << 20 engine.POST("/files", func(context *gin.Context) { form, _ := context.MultipartForm() files := form.File["imgList[]"] for _, file := range files { _ = context.SaveUploadedFile(file, "./tmp/"+file.Filename) } context.String(200,"保存成功!") }) }
|
3. 2 请求返回