**iris使用版本:v12 **
文件上传
package main
import (
"path/filepath"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/middleware/logger"
"github.com/kataras/iris/v12/middleware/recover"
"github.com/rs/cors"
)
type item struct {
name string `json: "Name"`
}
type Person struct {
Id string `form:"id" json:"id" url:"id" msgpack:"id"`
Name string `form:"name" json:"name" url:"name" msgpack:"name"`
}
func main() {
app := iris.New()
c := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
AllowCredentials: true,
Debug: true,
})
app.WrapRouter(c.ServeHTTP)
app.Use(recover.New())
app.Use(logger.New())
// 设置不同的应用APP不同的路由名称
users := app.Party("/users")
{
users.Post("/upload", uploadFile) // 上传文件
}
app.Listen(":9999")
}
const maxSize = 8 << 20 // 第一种方法
// const maxSize = 8 * iris.MB // 第二种方法
func uploadFile(ctx iris.Context) {
ctx.SetMaxRequestBodySize(maxSize)
file, fileHeader, err := ctx.FormFile("file")
if err != nil {
ctx.JSON(iris.Map{
"code": 400,
"msg": "fail",
})
return
}
defer file.Close()
dest := filepath.Join("./uploads", fileHeader.Filename)
_, err = ctx.SaveFormFile(fileHeader, dest)
if err != nil {
ctx.JSON(iris.Map{
"code": 400,
"msg": "fail",
})
return
}
ctx.JSON(iris.Map{
"code": 200,
"msg": "success",
})
}