一物一码
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

47 行
1.2 KiB

  1. package svc
  2. import (
  3. "time"
  4. "applet/app/db"
  5. "applet/app/db/model"
  6. "applet/app/e"
  7. "applet/app/lib/qiniu"
  8. "applet/app/md"
  9. "applet/app/utils"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func FileSave(c *gin.Context, f *md.FileCallback) error {
  13. // todo 校验时间是否超时, 目前没必要做时间校验,如果已经上传,但超时,那么会造成三方存储存在,可我方表不存在,导致冗余
  14. // 校验签名是否正确
  15. if qiniu.Sign(f.Time) != f.Sign {
  16. return e.NewErrCode(e.ERR_SIGN)
  17. }
  18. newFile := &model.SysFile{
  19. ParentFid: utils.StrToInt64(f.DirId),
  20. FileType: 1,
  21. ShowName: f.FileName,
  22. SaveName: f.FileName,
  23. Uid: utils.StrToInt(f.Uid),
  24. Ext: utils.FileExt(f.FileName),
  25. Hash: f.Hash,
  26. Mime: f.Mime,
  27. Provider: f.Provider,
  28. Width: utils.StrToInt(f.Width),
  29. Height: utils.StrToInt(f.Height),
  30. Bucket: f.Bucket,
  31. FileSize: utils.StrToInt64(f.FileSize),
  32. CreateAt: int(time.Now().Unix()),
  33. }
  34. file, _ := db.FileGetByPFidAndName(db.DBs[c.GetString("mid")], f.DirId, f.FileName)
  35. if file != nil {
  36. newFile.Fid = file.Fid
  37. // 更新数据
  38. return db.FileUpdate(db.DBs[c.GetString("mid")], newFile)
  39. }
  40. return db.FileInsert(db.DBs[c.GetString("mid")], newFile)
  41. }