来源:hgdjnet-server 9bfbafe10d417deea959bd53117bc88a10e60a83 项目身份 HKDJ / JHA-216,独立官网仓库,Jenkins 守卫键 hkdjnet 测试目录 /server/hkdj_net,App/Web API 30331/30332 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package uploadapi
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"hkdj-web-server/app/service/uploadser"
|
|
"hkdj-web-server/pub/common"
|
|
"hkdj-web-server/pub/common/log"
|
|
"hkdj-web-server/pub/common/srvdef"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// UploadImage 上传图片
|
|
// @Tags 上传
|
|
// @Summary 图片上传
|
|
// @Description 将图片转发至存储服务 /media/web/autopublish/image
|
|
// @Accept multipart/form-data
|
|
// @Produce json
|
|
// @Param file formData file true "图片文件"
|
|
// @Param watermark formData string false "是否加水印:1加,其他情况不加(头像不加)"
|
|
// @Success 200 {object} uploadser.ImageUploadResp "成功"
|
|
// @Failure 400 {string} string "参数错误"
|
|
// @Router /api/app/upload/image [post]
|
|
func UploadImage(ctx *gin.Context) {
|
|
f, err := ctx.FormFile("file")
|
|
if err != nil {
|
|
common.ServerJSON(ctx, srvdef.ErrParamError, "file 不能为空")
|
|
return
|
|
}
|
|
|
|
watermark := int64(0)
|
|
if ctx.PostForm("watermark") == "1" {
|
|
watermark = 1
|
|
}
|
|
|
|
param := &uploadser.ImageParam{
|
|
FileHeader: f,
|
|
Watermark: watermark,
|
|
}
|
|
respBytes, err := uploadser.ForwardImage(param)
|
|
if err != nil {
|
|
log.Error("UploadImage forward failed", log.E(err))
|
|
common.ServerJSON(ctx, srvdef.ServerError, nil)
|
|
return
|
|
}
|
|
|
|
ctx.Data(http.StatusOK, "application/json; charset=utf-8", respBytes)
|
|
}
|