func (this *CatalogController) extractCatalog(imgMust bool) (*models.Catalog, error) { o := &models.Catalog{} o.Name = this.GetString("name") o.Ident = this.GetString("ident") o.Resume = this.GetString("resume") o.DisplayOrder = this.GetIntWithDefault("display_order", 0) if o.Name == "" { return nil, fmt.Errorf("name is blank") } if o.Ident == "" { return nil, fmt.Errorf("ident is blank") } _, header, err := this.GetFile("img") if err != nil && imgMust { return nil, err } if err == nil { ext := filetool.Ext(header.Filename) imgPath := fmt.Sprintf("%s/%s_%d%s", CATALOG_IMG_DIR, o.Ident, time.Now().Unix(), ext) filetool.InsureDir(CATALOG_IMG_DIR) err = this.SaveToFile("img", imgPath) if err != nil && imgMust { return nil, err } if err == nil { o.ImgUrl = "/" + imgPath if g.UseQiniu { if addr, er := g.UploadFile(imgPath, imgPath); er != nil { if imgMust { return nil, er } } else { o.ImgUrl = addr filetool.Unlink(imgPath) } } } } return o, nil }
func (this *ApiController) Upload() { result := map[string]interface{}{ "success": false, } defer func() { this.Data["json"] = &result this.ServeJson() }() _, header, err := this.GetFile("image") if err != nil { return } ext := filetool.Ext(header.Filename) imgPath := fmt.Sprintf("%s/%d%s", EDITOR_IMG_DIR, time.Now().Unix(), ext) filetool.InsureDir(EDITOR_IMG_DIR) err = this.SaveToFile("image", imgPath) if err != nil { return } imgUrl := "/" + imgPath if g.UseQiniu { if addr, er := g.UploadFile(imgPath, imgPath); er != nil { return } else { imgUrl = addr filetool.Unlink(imgPath) } } result["link"] = imgUrl result["success"] = true }