MCPcopy Create free account
hub / github.com/TruthHun/DocHub / Post

Method Post

controllers/HomeControllers/UploadController.go:53–92  ·  view source on GitHub ↗

文档执行操作 处理流程: 1、检测用户是否已登录,未登录不允许上传 2、检测是否存在了该文档的md5,如果已存在,则根据md5查询存储在文档存档表中的数据;如果文档已经在文档存储表中存在,则该文档不需要再获取封面、大小、页码等数据 3、检测文档格式是否符合要求。 4、计算文档md5,然后根据md5再比对一次文档是否在存档表中存在 5、文档未存在,则将文档数据录入文档存储表(document_store) 6、执行文档转pdf,并获取文档页数、封面、摘要等 7、获取文档大小

()

Source from the content-addressed store, hash-verified

51//6、执行文档转pdf,并获取文档页数、封面、摘要等
52//7、获取文档大小
53func (this *UploadController) Post() {
54 var (
55 ext string //文档扩展名
56 dir = fmt.Sprintf("./uploads/%v/%v", time.Now().Format("2006/01/02"), this.IsLogin)
57 form models.FormUpload
58 err error
59 )
60
61 if this.IsLogin == 0 {
62 this.ResponseJson(false, "您当前未登录,请先登录")
63 }
64
65 this.ParseForm(&form)
66
67 //文件在文档库中未存在,则接收文件并做处理
68 f, fh, err := this.GetFile("File")
69 if err == nil {
70 defer f.Close()
71 os.MkdirAll(dir, os.ModePerm)
72 ext = strings.ToLower(filepath.Ext(fh.Filename))
73 if _, ok := helper.AllowedUploadDocsExt[ext]; !ok {
74 this.ResponseJson(false, "您上传的文档格式不正确,请上传正确格式的文档")
75 }
76 file := fmt.Sprintf("%v-%v-%v", this.IsLogin, time.Now().UnixNano(), ext)
77 form.TmpFile = filepath.Join(dir, file)
78 form.Ext = ext
79 err = this.SaveToFile("File", form.TmpFile)
80 if err != nil {
81 helper.Logger.Error(err.Error())
82 this.ResponseJson(false, "文件保存失败")
83 }
84 }
85
86 // 文档处理
87 err = models.DocumentProcess(this.IsLogin, form)
88 if err != nil {
89 this.ResponseJson(false, err.Error())
90 }
91 this.ResponseJson(true, "恭喜您,文档上传成功")
92}

Callers 2

BuildRequestFunction · 0.80
postMethod · 0.80

Calls 2

ParseFormMethod · 0.80
ResponseJsonMethod · 0.45

Tested by

no test coverage detected