You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

file.go 1.6 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "mime/multipart"
  5. "github.com/casbin/casbase/object"
  6. )
  7. func (c *ApiController) UpdateFile() {
  8. userName, ok := c.RequireSignedIn()
  9. if !ok {
  10. return
  11. }
  12. storeId := c.Input().Get("store")
  13. key := c.Input().Get("key")
  14. var file object.File
  15. err := json.Unmarshal(c.Ctx.Input.RequestBody, &file)
  16. if err != nil {
  17. panic(err)
  18. }
  19. res := object.UpdateFile(storeId, key, &file)
  20. if res {
  21. addRecordForFile(c, userName, "Update", storeId, key, "", true)
  22. }
  23. c.Data["json"] = res
  24. c.ServeJSON()
  25. }
  26. func (c *ApiController) AddFile() {
  27. userName, ok := c.RequireSignedIn()
  28. if !ok {
  29. return
  30. }
  31. storeId := c.Input().Get("store")
  32. key := c.Input().Get("key")
  33. isLeaf := c.Input().Get("isLeaf") == "1"
  34. filename := c.Input().Get("filename")
  35. var file multipart.File
  36. if isLeaf {
  37. var err error
  38. file, _, err = c.GetFile("file")
  39. if err != nil {
  40. c.ResponseError(err.Error())
  41. return
  42. }
  43. defer file.Close()
  44. }
  45. res, bs := object.AddFile(storeId, key, isLeaf, filename, file)
  46. if res {
  47. addFileToCache(key, filename, bs)
  48. addRecordForFile(c, userName, "Add", storeId, key, filename, isLeaf)
  49. }
  50. c.Data["json"] = res
  51. c.ServeJSON()
  52. }
  53. func (c *ApiController) DeleteFile() {
  54. userName, ok := c.RequireSignedIn()
  55. if !ok {
  56. return
  57. }
  58. storeId := c.Input().Get("store")
  59. key := c.Input().Get("key")
  60. isLeaf := c.Input().Get("isLeaf") == "1"
  61. res := object.DeleteFile(storeId, key, isLeaf)
  62. if res {
  63. addRecordForFile(c, userName, "Delete", storeId, key, "", isLeaf)
  64. }
  65. c.Data["json"] = res
  66. c.ServeJSON()
  67. }

基于Casbin的开源AI领域知识库平台

Contributors (1)