@@ -45,144 +45,137 @@ func (e File) UploadFile(c *gin.Context) {
4545 e .MakeContext (c )
4646 tag , _ := c .GetPostForm ("type" )
4747 urlPrefix := fmt .Sprintf ("%s://%s/" , "http" , c .Request .Host )
48- var fileResponse FileResponse
4948
5049 switch tag {
5150 case "1" : // 单图
52- var done bool
53- fileResponse , done = e .singleFile (c , fileResponse , urlPrefix )
54- if done {
55- return
56- }
57- e .OK (fileResponse , "上传成功" )
58- return
51+ e .handleSingleFile (c , urlPrefix )
5952 case "2" : // 多图
60- multipartFile := e .multipleFile (c , urlPrefix )
61- e .OK (multipartFile , "上传成功" )
62- return
53+ e .handleMultipleFiles (c , urlPrefix )
6354 case "3" : // base64
64- fileResponse = e .baseImg (c , fileResponse , urlPrefix )
65- e .OK (fileResponse , "上传成功" )
55+ e .handleBase64File (c , urlPrefix )
6656 default :
67- var done bool
68- fileResponse , done = e .singleFile (c , fileResponse , urlPrefix )
69- if done {
70- return
71- }
72- e .OK (fileResponse , "上传成功" )
57+ e .handleSingleFile (c , urlPrefix )
58+ }
59+ }
60+
61+ func (e File ) handleSingleFile (c * gin.Context , urlPrefix string ) {
62+ fileResponse , done := e .singleFile (c , FileResponse {}, urlPrefix )
63+ if done {
7364 return
7465 }
66+ e .OK (fileResponse , "上传成功" )
67+ }
68+
69+ func (e File ) handleMultipleFiles (c * gin.Context , urlPrefix string ) {
70+ multipartFile := e .multipleFile (c , urlPrefix )
71+ e .OK (multipartFile , "上传成功" )
72+ }
7573
74+ func (e File ) handleBase64File (c * gin.Context , urlPrefix string ) {
75+ fileResponse := e .baseImg (c , FileResponse {}, urlPrefix )
76+ e .OK (fileResponse , "上传成功" )
7677}
7778
78- func (e File ) baseImg (c * gin.Context , fileResponse FileResponse , urlPerfix string ) FileResponse {
79+ func (e File ) baseImg (c * gin.Context , fileResponse FileResponse , urlPrefix string ) FileResponse {
7980 files , _ := c .GetPostForm ("file" )
8081 file2list := strings .Split (files , "," )
81- ddd , _ := base64 .StdEncoding .DecodeString (file2list [1 ])
82- guid := uuid .New ().String ()
83- fileName := guid + ".jpg"
84- err := utils .IsNotExistMkDir (path )
85- if err != nil {
82+ decodedData , _ := base64 .StdEncoding .DecodeString (file2list [1 ])
83+ fileName := uuid .New ().String () + ".jpg"
84+
85+ if err := utils .IsNotExistMkDir (path ); err != nil {
8686 e .Error (500 , errors .New ("" ), "初始化文件路径失败" )
87+ return fileResponse
8788 }
89+
8890 base64File := path + fileName
89- _ = ioutil .WriteFile (base64File , ddd , 0666 )
91+ _ = ioutil .WriteFile (base64File , decodedData , 0666 )
9092 typeStr := strings .Replace (strings .Replace (file2list [0 ], "data:" , "" , - 1 ), ";base64" , "" , - 1 )
91- fileResponse = FileResponse {
92- Size : pkg .GetFileSize (base64File ),
93- Path : base64File ,
94- FullPath : urlPerfix + base64File ,
95- Name : "" ,
96- Type : typeStr ,
97- }
93+
94+ fileResponse = e .buildFileResponse (base64File , urlPrefix , "" , typeStr )
9895 source , _ := c .GetPostForm ("source" )
99- err = thirdUpload ( source , fileName , base64File )
100- if err != nil {
96+
97+ if err := thirdUpload ( source , fileName , base64File ); err != nil {
10198 e .Error (200 , errors .New ("" ), "上传第三方失败" )
10299 return fileResponse
103100 }
101+
104102 if source != "1" {
105103 fileResponse .Path = "/static/uploadfile/" + fileName
106104 fileResponse .FullPath = "/static/uploadfile/" + fileName
107105 }
108106 return fileResponse
109107}
110108
111- func (e File ) multipleFile (c * gin.Context , urlPerfix string ) []FileResponse {
109+ func (e File ) multipleFile (c * gin.Context , urlPrefix string ) []FileResponse {
112110 files := c .Request .MultipartForm .File ["file" ]
113111 source , _ := c .GetPostForm ("source" )
114112 var multipartFile []FileResponse
113+
115114 for _ , f := range files {
116- guid := uuid .New ().String ()
117- fileName := guid + utils .GetExt (f .Filename )
115+ fileName := uuid .New ().String () + utils .GetExt (f .Filename )
118116
119- err := utils .IsNotExistMkDir (path )
120- if err != nil {
117+ if err := utils .IsNotExistMkDir (path ); err != nil {
121118 e .Error (500 , errors .New ("" ), "初始化文件路径失败" )
119+ continue
122120 }
121+
123122 multipartFileName := path + fileName
124- err1 := c .SaveUploadedFile (f , multipartFileName )
123+ if err := c .SaveUploadedFile (f , multipartFileName ); err != nil {
124+ continue
125+ }
126+
125127 fileType , _ := utils .GetType (multipartFileName )
126- if err1 == nil {
127- err := thirdUpload (source , fileName , multipartFileName )
128- if err != nil {
129- e .Error (500 , errors .New ("" ), "上传第三方失败" )
130- } else {
131- fileResponse := FileResponse {
132- Size : pkg .GetFileSize (multipartFileName ),
133- Path : multipartFileName ,
134- FullPath : urlPerfix + multipartFileName ,
135- Name : f .Filename ,
136- Type : fileType ,
137- }
138- if source != "1" {
139- fileResponse .Path = "/static/uploadfile/" + fileName
140- fileResponse .FullPath = "/static/uploadfile/" + fileName
141- }
142- multipartFile = append (multipartFile , fileResponse )
143- }
128+ if err := thirdUpload (source , fileName , multipartFileName ); err != nil {
129+ e .Error (500 , errors .New ("" ), "上传第三方失败" )
130+ continue
131+ }
132+
133+ fileResponse := e .buildFileResponse (multipartFileName , urlPrefix , f .Filename , fileType )
134+ if source != "1" {
135+ fileResponse .Path = "/static/uploadfile/" + fileName
136+ fileResponse .FullPath = "/static/uploadfile/" + fileName
144137 }
138+ multipartFile = append (multipartFile , fileResponse )
145139 }
146140 return multipartFile
147141}
148142
149- func (e File ) singleFile (c * gin.Context , fileResponse FileResponse , urlPerfix string ) (FileResponse , bool ) {
143+ func (e File ) singleFile (c * gin.Context , fileResponse FileResponse , urlPrefix string ) (FileResponse , bool ) {
150144 files , err := c .FormFile ("file" )
151-
152145 if err != nil {
153146 e .Error (200 , errors .New ("" ), "图片不能为空" )
154147 return FileResponse {}, true
155148 }
156- // 上传文件至指定目录
157- guid := uuid .New ().String ()
158-
159- fileName := guid + utils .GetExt (files .Filename )
160149
161- err = utils .IsNotExistMkDir ( path )
162- if err != nil {
150+ fileName := uuid . New (). String () + utils .GetExt ( files . Filename )
151+ if err := utils . IsNotExistMkDir ( path ); err != nil {
163152 e .Error (500 , errors .New ("" ), "初始化文件路径失败" )
153+ return FileResponse {}, true
164154 }
155+
165156 singleFile := path + fileName
166- _ = c .SaveUploadedFile (files , singleFile )
167- fileType , _ := utils .GetType (singleFile )
168- fileResponse = FileResponse {
169- Size : pkg .GetFileSize (singleFile ),
170- Path : singleFile ,
171- FullPath : urlPerfix + singleFile ,
172- Name : files .Filename ,
173- Type : fileType ,
157+ if err := c .SaveUploadedFile (files , singleFile ); err != nil {
158+ e .Error (500 , errors .New ("" ), "文件保存失败" )
159+ return FileResponse {}, true
174160 }
175- //source, _ := c.GetPostForm("source")
176- //err = thirdUpload(source, fileName, singleFile)
177- //if err != nil {
178- // e.Error(200, errors.New(""), "上传第三方失败")
179- // return FileResponse{}, true
180- //}
161+
162+ fileType , _ := utils .GetType (singleFile )
163+ fileResponse = e .buildFileResponse (singleFile , urlPrefix , files .Filename , fileType )
181164 fileResponse .Path = "/static/uploadfile/" + fileName
182165 fileResponse .FullPath = "/static/uploadfile/" + fileName
183166 return fileResponse , false
184167}
185168
169+ func (e File ) buildFileResponse (filePath , urlPrefix , fileName , fileType string ) FileResponse {
170+ return FileResponse {
171+ Size : pkg .GetFileSize (filePath ),
172+ Path : filePath ,
173+ FullPath : urlPrefix + filePath ,
174+ Name : fileName ,
175+ Type : fileType ,
176+ }
177+ }
178+
186179func thirdUpload (source string , name string , path string ) error {
187180 switch source {
188181 case "2" :
0 commit comments