123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package main
-
- import (
- "fmt"
- "image"
- _ "image/gif"
- _ "image/jpeg"
- "image/png"
- "os"
-
- "github.com/gin-gonic/gin"
- "github.com/nfnt/resize"
- )
-
- func avatarSubmit(c *gin.Context) {
- ctx := getContext(c)
- if ctx.User.ID == 0 {
- resp403(c)
- return
- }
- var m message
- defer func() {
- simpleReply(c, m)
- }()
- if config.AvatarsFolder == "" {
- m = errorMessage{T(c, "Changing avatar is currently not possible.")}
- return
- }
- file, _, err := c.Request.FormFile("avatar")
- if err != nil {
- m = errorMessage{T(c, "An error occurred.")}
- return
- }
- img, _, err := image.Decode(file)
- if err != nil {
- m = errorMessage{T(c, "An error occurred.")}
- return
- }
- img = resize.Thumbnail(256, 256, img, resize.Bilinear)
- f, err := os.Create(fmt.Sprintf("%s/%d.png", config.AvatarsFolder, ctx.User.ID))
- defer f.Close()
- if err != nil {
- m = errorMessage{T(c, "An error occurred.")}
- c.Error(err)
- return
- }
- err = png.Encode(f, img)
- if err != nil {
- m = errorMessage{T(c, "We were not able to save your avatar.")}
- c.Error(err)
- return
- }
- m = successMessage{T(c, "Your avatar was successfully changed. It may take some time to properly update. To force a cache refresh, you can use CTRL+F5.")}
- }
|