fix
wangpengfei
2023-08-28 f22238066f4901370059bb6aaa94742709c4e8bd
api/v1/test/contract.go
@@ -4,6 +4,7 @@
   "bytes"
   "fmt"
   "github.com/gin-gonic/gin"
   "github.com/h2non/filetype"
   "go.uber.org/zap"
   "net/http"
   "srm/global"
@@ -32,7 +33,7 @@
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /con/createContract [post]
func (conApi *ContractApi) CreateContract(c *gin.Context) {
   name := c.Param("name")
   name := c.PostForm("name")
   file, err := c.FormFile("file")
   if err != nil {
      c.JSON(400, gin.H{"error": err.Error()})
@@ -44,9 +45,20 @@
   defer f.Close()
   f.Read(fileContent)
   // 重置文件指针
   f.Seek(0, 0)
   // 使用 filetype 库检测文件类型
   kind, _ := filetype.Match(fileContent)
   if kind == filetype.Unknown {
      c.JSON(http.StatusBadRequest, gin.H{"error": "Unknown file type"})
      return
   }
   contract := test.Contract{
      FileName:    name,
      FileContent: fileContent,
      FileType:    kind.MIME.Value,
   }
   if err, id := conService.CreateContract(&contract); err != nil {
@@ -54,7 +66,7 @@
      response.FailWithMessage("创建失败", c)
   } else {
      //response.OkWithMessage("创建成功", c)
      response.OkWithData(gin.H{"id": id}, c)
      response.OkWithData(gin.H{"id": id, "name": name}, c)
   }
}
@@ -277,7 +289,7 @@
      c.Header("Content-Description", "File Transfer")
      c.Header("Content-Transfer-Encoding", "binary")
      c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=%s", contract.FileName))
      c.Header("Content-Type", "application/pdf")
      c.Header("Content-Type", contract.FileType)
      // 将文件作为响应体发送
      http.ServeContent(c.Writer, c.Request, contract.FileName, time.Now(), reader)