Skip to content

Commit bb12bf6

Browse files
committed
file上传添加文件名
1 parent 1dfee9a commit bb12bf6

2 files changed

Lines changed: 38 additions & 4 deletions

File tree

service/file/file.go

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import (
66
"StealthIMProxy/errorcode"
77
"context"
88
"encoding/binary"
9-
"encoding/json" // 导入io包
9+
"encoding/json"
1010
"fmt"
1111
"io"
1212
"net/http"
1313
"strconv"
14+
"strings"
1415
"time"
1516

1617
"github.com/gin-gonic/gin"
@@ -110,12 +111,44 @@ func upload(c *gin.Context) {
110111
})
111112
return
112113
}
114+
if metadata.Size == "" || metadata.Size == "0" || metadata.Groupid == "" || metadata.Groupid == "0" || metadata.Hash == "" {
115+
conn.WriteJSON(gin.H{
116+
"result": gin.H{
117+
"code": errorcode.ProxyBadRequest,
118+
"msg": "Metadata format error",
119+
},
120+
"type": "metadata",
121+
})
122+
return
123+
}
124+
if len(metadata.Filename) > 30 {
125+
conn.WriteJSON(gin.H{
126+
"result": gin.H{
127+
"code": errorcode.ProxyBadRequest,
128+
"msg": "Metadata format error",
129+
},
130+
"type": "metadata",
131+
})
132+
return
133+
}
134+
if strings.ContainsAny(metadata.Filename, "/\\<>|*:?\"") {
135+
conn.WriteJSON(gin.H{
136+
"result": gin.H{
137+
"code": errorcode.ProxyBadRequest,
138+
"msg": "Filename cannot contain special characters like '/', '\\', '<', '>', '|', '*', ':', '?', '\"'",
139+
},
140+
"type": "metadata",
141+
})
142+
return
143+
}
144+
113145
err = stream.Send(&pb.UploadRequest{Data: &pb.UploadRequest_Metadata{
114146
Metadata: &pb.Upload_FileMetaData{
115147
Totalsize: filesize,
116148
UploadGroupid: grpid,
117149
UploadUid: uid,
118150
Hash: metadata.Hash,
151+
Filename: metadata.Filename,
119152
},
120153
}})
121154
if err != nil {

service/file/struct.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package file
22

33
type meatdataRequest struct {
4-
Size string `json:"size"`
5-
Groupid string `json:"groupid"`
6-
Hash string `json:"hash"`
4+
Size string `json:"size"`
5+
Groupid string `json:"groupid"`
6+
Hash string `json:"hash"`
7+
Filename string `json:"filename"`
78
}

0 commit comments

Comments
 (0)