From 03915064efe8fd7f222e4aac199af7e2d37deec6 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 15 十一月 2023 20:11:20 +0800
Subject: [PATCH] 增加产品类别
---
api/v1/test/contract.go | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/api/v1/test/contract.go b/api/v1/test/contract.go
index a3411c5..6ae88f9 100644
--- a/api/v1/test/contract.go
+++ b/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)
}
}
@@ -228,7 +240,7 @@
//reader := bytes.NewReader(contract.FileContent)
//c.DataFromReader(http.StatusOK, int64(len(contract.FileContent)), "application/pdf", reader, map[string]string{"Content-Disposition": fmt.Sprintf("attachment; filename=%s", contract.FileName)})
reader := bytes.NewReader(contract.FileContent)
- c.Writer.Header().Set("Content-Type", "application/pdf")
+ c.Header("Content-Type", contract.FileType)
c.Writer.Header().Set("Content-Disposition", "inline; filename="+contract.FileName)
http.ServeContent(c.Writer, c.Request, contract.FileName, time.Now(), reader)
}
@@ -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)
--
Gitblit v1.8.0