YiTao/controller/file_controller.go

59 lines
1.5 KiB
Go
Raw Normal View History

2024-11-09 14:59:27 +08:00
package controller
import (
"yitao/ecode"
"yitao/model"
"yitao/util"
"github.com/kataras/iris/v12/mvc"
)
type FileController struct {
BaseController
}
func (c *FileController) BeforeActivation(b mvc.BeforeActivation) {
b.Handle("PUT", "/upload/item-img", "UploadItemImg")
}
// @Summary 上传商品图片
// @Description 上传商品图片
// @Tags file api
// @Accept json
// @Produce json
// @Param file formData file true "图片文件"
// @Success 200 {object} map[string]interface{} "{"id": 1,"key":"图片唯一标识"}"
// @Failure 400 {object} map[string]interface{} "{"msg": "错误信息","code":0}"
// @Router /api/file/upload/item-img [put]
func (c *FileController) UploadItemImg() mvc.Result {
e := ecode.OK()
// 获取原文件
_, file_header, err := c.Ctx.FormFile("file")
if err != nil {
return ecode.Set(255, err.Error()).Response()
}
file, e := c.Service.File.UploadItemImg(file_header)
if e.Error() {
return e.Response()
}
// 保存文件到 ./public/upload/item/img 目录
_, err = c.Ctx.SaveFormFile(file_header, file.SystemPath)
if err != nil {
return ecode.Set(255, err.Error()).Response()
}
if !util.FileIsImage(file.SystemPath) {
// 文件不是图片文件
util.DeleteFile(file.SystemPath)
2024-11-09 16:36:28 +08:00
c.Service.File.SetFileState(file.ID, model.FileStateDelete)
2024-11-09 14:59:27 +08:00
return ecode.File(ecode.FILE_TYPE_ERR).Response()
}
return mvc.Response{
Object: map[string]interface{}{
"id": file.ID,
"key": file.Key,
"code": 0,
},
}
}