提交 25c6fdee 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

文件类型swagger的注解书写

用户头像上传 功能完成
上级 167186fa
package api
import (
"github.com/gin-gonic/gin"
"net/http"
)
func ReportFormat(c *gin.Context, success bool, msg string, json gin.H) {
c.JSON(http.StatusOK, gin.H{
"success": success,
"msg": msg,
"data": json,
})
}
......@@ -3,7 +3,14 @@ package api
import (
"fmt"
"github.com/gin-gonic/gin"
"main/controller/support"
"main/model/dbModel"
"mime/multipart"
)
var (
USER_HEADER_IMG_PATH string = "http://qmplusimg.henrongyi.top"
USER_HEADER_BUCKET string = "qm-plus-img"
)
type RegistAndLoginStuct struct {
......@@ -24,20 +31,12 @@ func Regist(c *gin.Context) {
U := &dbModel.User{UserName: R.UserName, PassWord: R.PassWord}
err, user := U.Regist()
if err != nil {
c.JSON(200, gin.H{
"success": false,
"msg": fmt.Sprintf("%v", err),
"data": gin.H{
"user": user,
},
ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{
"user": user,
})
} else {
c.JSON(200, gin.H{
"success": true,
"msg": "创建成功",
"data": gin.H{
"user": user,
},
ReportFormat(c, false, "创建成功", gin.H{
"user": user,
})
}
}
......@@ -53,21 +52,9 @@ func Login(c *gin.Context) {
_ = c.BindJSON(&L)
U := &dbModel.User{UserName: L.UserName, PassWord: L.PassWord}
if err, user := U.Login(); err != nil {
c.JSON(200, gin.H{
"success": false,
"msg": "用户名密码错误",
"data": gin.H{
"user": user,
},
})
ReportFormat(c, false, "用户名密码错误", gin.H{"user": user})
} else {
c.JSON(200, gin.H{
"success": true,
"msg": "登录成功",
"data": gin.H{
"user": user,
},
})
ReportFormat(c, true, "登录成功", gin.H{"user": user})
}
}
......@@ -88,16 +75,45 @@ func ChangePassWord(c *gin.Context) {
_ = c.BindJSON(&params)
U := &dbModel.User{UserName: params.UserName, PassWord: params.PassWord}
if err, _ := U.ChangePassWord(params.NewPassWord); err != nil {
c.JSON(200, gin.H{
"success": false,
"msg": "修改失败,请检查用户名密码",
"data": gin.H{},
})
ReportFormat(c, false, "修改失败,请检查用户名密码", gin.H{})
} else {
c.JSON(200, gin.H{
"success": true,
"msg": "修改成功",
"data": gin.H{},
})
ReportFormat(c, true, "修改成功", gin.H{})
}
}
type UserHeaderImg struct {
HeaderImg multipart.File `json:"headerImg"`
}
// @Tags User
// @Summary 用户上传头像
// @accept multipart/form-data
// @Produce application/json
// @Param headerImg formData file true "用户上传头像"
// @Param userName formData string true "用户上传头像"
// @Success 200 {string} json "{"success":true,"data":{},"msg":"上传成功"}"
// @Router /user/uploadHeaderImg [post]
func UploadHeaderImg(c *gin.Context) {
//获取头像文件
_, header, err := c.Request.FormFile("headerImg")
//便于找到用户 以后从jwt中取
userName := c.PostForm("userName")
if err != nil {
ReportFormat(c, false, fmt.Sprintf("上传文件失败,%v", err), gin.H{})
} else {
//文件上传后拿到文件路径
err, filePath := support.Upload(header, USER_HEADER_BUCKET, USER_HEADER_IMG_PATH)
if err != nil {
ReportFormat(c, false, fmt.Sprintf("接收返回值失败,%v", err), gin.H{})
} else {
//修改数据库后得到修改后的user并且返回供前端使用
err, user := new(dbModel.User).UploadHeaderImg(userName, filePath)
if err != nil {
ReportFormat(c, false, fmt.Sprintf("修改数据库链接失败,%v", err), gin.H{})
} else {
ReportFormat(c, true, "上传成功", gin.H{"user": user})
}
}
}
}
package support
import (
"bytes"
"context"
"fmt"
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/api.v7/storage"
"mime/multipart"
"time"
)
var accessKey string = "25j8dYBZ2wuiy0yhwShytjZDTX662b8xiFguwxzZ" // 你在七牛云的accessKey
var secretKey string = "pgdbqEsf7ooZh7W3xokP833h3dZ_VecFXPDeG5JY" // 你在七牛云的secretKey
var bucket string = "a303176530" // 你七牛云标准空间的名字
func Upload(file multipart.File) (err error, path string) {
// 接收两个参数 一个文件流 一个 bucket 你的七牛云标准空间的名字
func Upload(file *multipart.FileHeader, bucket string, urlPath string) (err error, path string) {
putPolicy := storage.PutPolicy{
Scope: bucket,
}
......@@ -31,12 +33,18 @@ func Upload(file multipart.File) (err error, path string) {
"x:name": "github logo",
},
}
data := []byte("hello, this is qiniu cloud")
dataLen := int64(len(data))
err := formUploader.Put(context.Background(), &ret, upToken, key, bytes.NewReader(data), dataLen, &putExtra)
f, e := file.Open()
if e != nil {
fmt.Println(e)
return e, ""
}
dataLen := file.Size
fileKey := fmt.Sprintf("%d%s", time.Now().Unix(), file.Filename) // 文件名格式 自己可以改 建议保证唯一性
err = formUploader.Put(context.Background(), &ret, upToken, fileKey, f, dataLen, &putExtra)
if err != nil {
fmt.Println(err)
return
//qmlog.QMLog.Info(err)
return err, ""
}
fmt.Println(ret.Key, ret.Hash)
return err, urlPath + "/" + ret.Key
}
// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
// This file was generated by swaggo/swag at
// 2019-09-03 23:59:41.1295277 +0800 CST m=+0.038362901
// 2019-09-05 23:15:39.7963441 +0800 CST m=+0.062832501
package docs
......@@ -118,6 +118,44 @@ var doc = `{
}
}
}
},
"/user/uploadHeaderImg": {
"post": {
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "用户上传头像",
"parameters": [
{
"type": "file",
"description": "用户上传头像",
"name": "headerImg",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "用户上传头像",
"name": "userName",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "{\"success\":true,\"data\":{},\"msg\":\"上传成功\"}",
"schema": {
"type": "string"
}
}
}
}
}
},
"definitions": {
......
......@@ -97,6 +97,44 @@
}
}
}
},
"/user/uploadHeaderImg": {
"post": {
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "用户上传头像",
"parameters": [
{
"type": "file",
"description": "用户上传头像",
"name": "headerImg",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "用户上传头像",
"name": "userName",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "{\"success\":true,\"data\":{},\"msg\":\"上传成功\"}",
"schema": {
"type": "string"
}
}
}
}
}
},
"definitions": {
......
......@@ -79,4 +79,29 @@ paths:
summary: 用户注册账号
tags:
- User
/user/uploadHeaderImg:
post:
consumes:
- multipart/form-data
parameters:
- description: 用户上传头像
in: formData
name: headerImg
required: true
type: file
- description: 用户上传头像
in: formData
name: userName
required: true
type: string
produces:
- application/json
responses:
"200":
description: '{"success":true,"data":{},"msg":"上传成功"}'
schema:
type: string
summary: 用户上传头像
tags:
- User
swagger: "2.0"
......@@ -62,3 +62,10 @@ func (u *User) Login() (err error, userInter *User) {
err = qmsql.DEFAULTDB.Where("user_name = ? AND pass_word = ?", u.UserName, u.PassWord).First(&user).Error
return err, &user
}
// 用户头像上传更新地址
func (u *User) UploadHeaderImg(userName string, filePath string) (err error, userInter *User) {
var user User
err = qmsql.DEFAULTDB.Where("user_name = ?", userName).First(&user).Update("header_img", filePath).First(&user).Error
return err, &user
}
......@@ -11,5 +11,6 @@ func InitUserRouter(Router *gin.Engine) {
UserRouter.POST("regist", api.Regist)
UserRouter.POST("login", api.Login)
UserRouter.POST("changePassWord", api.ChangePassWord)
UserRouter.POST("uploadHeaderImg", api.UploadHeaderImg)
}
}
B# QMPlus gin+vue开源快速项目模板
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册