59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
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)
|
|
c.Service.File.SetFileState(file.ID, model.FileStateDelete)
|
|
return ecode.File(ecode.FILE_TYPE_ERR).Response()
|
|
}
|
|
|
|
return mvc.Response{
|
|
Object: map[string]interface{}{
|
|
"id": file.ID,
|
|
"key": file.Key,
|
|
"code": 0,
|
|
},
|
|
}
|
|
}
|