func (c Product) NewPost(product models.Product) revel.Result { product.Validate(c.Validation) file, header, err := c.Request.FormFile("image") if err == nil { defer file.Close() if ok := checkImageExt(c.Validation, &file, header, "image"); ok { fileName := uuidFileName(header.Filename) err, ret := qiniuUploadImage(&file, fileName) if err != nil { c.Flash.Error("上传到七牛出错,请检查七牛配置。") return c.Redirect(routes.Product.New()) } else { product.Image = ret.Key } } } else { err := &revel.ValidationError{ Message: "字段不能为空", Key: "image", } c.Validation.Errors = append(c.Validation.Errors, err) } if c.Validation.HasErrors() { c.Validation.Keep() c.FlashParams() return c.Redirect(routes.Product.New()) } product.User = models.User{Id: c.user().Id} aff, _ := engine.Insert(&product) if aff > 0 { c.Flash.Success("提交案例成功") cache.Delete("products") } else { c.Flash.Error("提交案例失败") } return c.Redirect(routes.Product.Index()) }