MCPcopy Index your code
hub / github.com/TruthHun/DocHub / Add

Method Add

controllers/AdminControllers/BannerController.go:34–91  ·  view source on GitHub ↗

新增横幅

()

Source from the content-addressed store, hash-verified

32
33//新增横幅
34func (this *BannerController) Add() {
35 f, h, err := this.GetFile("Picture")
36 if err != nil {
37 helper.Logger.Error(err.Error())
38 this.ResponseJson(false, err.Error())
39 }
40 defer f.Close()
41
42 dir := "uploads/" + time.Now().Format("2006/01/02")
43 os.MkdirAll(dir, 0777)
44 ext := helper.GetSuffix(h.Filename, ".")
45 filePath := dir + "/" + helper.MD5Crypt(fmt.Sprintf("%v-%v", h.Filename, time.Now().Unix())) + "." + ext
46
47 err = this.SaveToFile("Picture", filePath) // 保存位置
48 if err != nil {
49 helper.Logger.Error(err.Error())
50 this.ResponseJson(false, err.Error())
51 }
52 defer os.RemoveAll(filePath)
53
54 if err = helper.CropImage(filePath, helper.BannerWidth, helper.BannerHeight); err != nil {
55 helper.Logger.Error("横幅裁剪失败:%v", err.Error())
56 this.ResponseJson(false, err.Error())
57 }
58
59 var md5str string
60 md5str, err = helper.FileMd5(filePath)
61 if err != nil {
62 helper.Logger.Error(err.Error())
63 this.ResponseJson(false, err.Error())
64 }
65
66 save := md5str + "." + ext
67
68 var cs *models.CloudStore
69 if cs, err = models.NewCloudStore(false); err != nil {
70 helper.Logger.Error(err.Error())
71 this.ResponseJson(false, err.Error())
72 }
73
74 if err = cs.Upload(filePath, save); err != nil {
75 helper.Logger.Error(err.Error())
76 this.ResponseJson(false, err.Error())
77 }
78
79 var banner models.Banner
80 this.ParseForm(&banner)
81 banner.Picture = save
82 banner.TimeCreate = int(time.Now().Unix())
83 banner.Status = true
84 _, err = orm.NewOrm().Insert(&banner)
85 if err != nil {
86 helper.Logger.Error(err.Error())
87 this.ResponseJson(false, err.Error())
88 }
89
90 this.ResponseJson(true, "横幅添加成功")
91}

Callers 1

HandleLogsMethod · 0.80

Calls 4

UploadMethod · 0.95
ParseFormMethod · 0.80
InsertMethod · 0.80
ResponseJsonMethod · 0.45

Tested by

no test coverage detected