iris当中文件上传
//5.文件上传
app.Post("/admin/update/avatar/{adminId}", func(context context.Context) {
adminId := context.Params().Get("adminId")
iris.New().Logger().Info(adminId)
//获取上传文件的信息
file, info, err := context.FormFile("file")
if err != nil {
iris.New().Logger().Info(err.Error())
context.JSON(iris.Map{
"status": "0",
"type": "0",
"message": "文件上传失败!",
})
return
}
//最后要关闭文件
defer file.Close()
//获取文件名称`
fname := info.Filename
//把文件上传到哪里
out, err := os.OpenFile("./uploads/"+fname, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
iris.New().Logger().Info(err.Error())
context.JSON(iris.Map{
"status": "0",
"type": "0",
"message": "文件位置打开失败!",
})
return
}
//我们打印一下文件路径
iris.New().Logger().Info("文件路径:"+out.Name())
//最终也不要忘记关闭上传之后的文件流
defer out.Close()
//拷贝文件到指定位置
_, err = io.Copy(out, file)
if err != nil {
context.JSON(iris.Map{
"status": "0",
"type": "0",
"message": "文件上传彻底失败!",
})
return
}else {
context.JSON(iris.Map{
"status": "1",
"type": "1",
"message": "文件上传成功!",
})
}
//上传成功之后去修改数据库响应的位置即可!
})
只是实现了图片的上传 多图片上传 或者 文件上传 多文件上传 自己去百度 原理都一样
推荐文章: