Skip to content

Commit d1502d2

Browse files
author
QM303176530
committed
增加了断点续传插件版 保留原始版本供学习原理使用
1 parent f99bfe2 commit d1502d2

File tree

12 files changed

+452
-11
lines changed

12 files changed

+452
-11
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package v1
2+
3+
import (
4+
"fmt"
5+
"gin-vue-admin/global/response"
6+
"gin-vue-admin/model"
7+
"gin-vue-admin/service"
8+
"gin-vue-admin/utils"
9+
"github.com/gin-gonic/gin"
10+
)
11+
12+
// @Tags SimpleUploader
13+
// @Summary 断点续传插件版示例
14+
// @Security ApiKeyAuth
15+
// @accept multipart/form-data
16+
// @Produce application/json
17+
// @Param file formData file true "断点续传插件版示例"
18+
// @Success 200 {string} string "{"success":true,"data":{},"msg":"上传成功"}"
19+
// @Router /simpleUploader/upload [post]
20+
func SimpleUploaderUpload(c *gin.Context) {
21+
var chunk model.ExaSimpleUploader
22+
_, header, err := c.Request.FormFile("file")
23+
chunk.Filename = c.PostForm("filename")
24+
chunk.ChunkNumber = c.PostForm("chunkNumber")
25+
chunk.CurrentChunkSize = c.PostForm("currentChunkSize")
26+
chunk.Identifier = c.PostForm("identifier")
27+
chunk.TotalSize = c.PostForm("totalSize")
28+
chunk.TotalChunks = c.PostForm("totalChunks")
29+
var chunkDir = "./chunk/" + chunk.Identifier + "/"
30+
hasDir, _ := utils.PathExists(chunkDir)
31+
if !hasDir {
32+
utils.CreateDir(chunkDir)
33+
}
34+
chunkPath := chunkDir + chunk.Filename + chunk.ChunkNumber
35+
err = c.SaveUploadedFile(header, chunkPath)
36+
if err != nil {
37+
response.FailWithMessage(fmt.Sprintf("切片创建失败,%v", err), c)
38+
return
39+
}
40+
chunk.CurrentChunkPath = chunkPath
41+
err = service.SaveChunk(chunk)
42+
if err != nil {
43+
response.FailWithMessage(fmt.Sprintf("切片创建失败,%v", err), c)
44+
return
45+
} else {
46+
response.Ok(c)
47+
}
48+
}
49+
50+
// @Tags SimpleUploader
51+
// @Summary 断点续传插件版示例
52+
// @Security ApiKeyAuth
53+
54+
// @Produce application/json
55+
// @Param params md5 get "测试文件是否已经存在和判断已经上传过的切片"
56+
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
57+
// @Router /simpleUploader/checkFileMd5 [get]
58+
func CheckFileMd5(c *gin.Context) {
59+
md5 := c.Query("md5")
60+
err, chunks, isDone := service.CheckFileMd5(md5)
61+
if err != nil {
62+
response.FailWithMessage(fmt.Sprintf("md5读取失败,%v", err), c)
63+
} else {
64+
response.OkWithData(gin.H{
65+
"chunks": chunks,
66+
"isDone": isDone,
67+
}, c)
68+
}
69+
}
70+
71+
// @Tags SimpleUploader
72+
// @Summary 合并文件
73+
// @Security ApiKeyAuth
74+
// @Produce application/json
75+
// @Param params md5 get "合并文件"
76+
// @Success 200 {string} string "{"success":true,"data":{},"msg":"合并成功"}"
77+
// @Router /simpleUploader/mergeFileMd5 [get]
78+
func MergeFileMd5(c *gin.Context) {
79+
md5 := c.Query("md5")
80+
fileName := c.Query("fileName")
81+
err := service.MergeFileMd5(md5, fileName)
82+
if err != nil {
83+
response.FailWithMessage(fmt.Sprintf("md5读取失败,%v", err), c)
84+
} else {
85+
response.OkWithData(gin.H{}, c)
86+
}
87+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
INSERT INTO `casbin_rule` VALUES ('p', '888', '/simpleUploader/upload', 'POST', '', '', '');
2+
INSERT INTO `casbin_rule` VALUES ('p', '888', '/simpleUploader/checkFileMd5', 'GET', '', '', '');
3+
INSERT INTO `casbin_rule` VALUES ('p', '888', '/simpleUploader/mergeFileMd5', 'GET', '', '', '');
4+
5+
-- ----------------------------
6+
-- Table structure for exa_simple_uploaders
7+
-- ----------------------------
8+
DROP TABLE IF EXISTS `exa_simple_uploaders`;
9+
CREATE TABLE `exa_simple_uploaders` (
10+
`chunk_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '当前切片标记',
11+
`current_chunk_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '当前切片容量',
12+
`current_chunk_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '切片本地路径',
13+
`total_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '总容量',
14+
`identifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件标识(md5)',
15+
`filename` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件名',
16+
`total_chunks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '切片总数',
17+
`is_done` tinyint(1) NULL DEFAULT NULL COMMENT '是否上传完成',
18+
`file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件本地路径'
19+
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
20+
21+
INSERT INTO `sys_apis` VALUES (100, '2020-08-15 12:10:55', '2020-08-15 12:10:55', NULL, NULL, '/simpleUploader/upload', '插件版分片上传', 'simpleUploader', 'POST');
22+
INSERT INTO `sys_apis` VALUES (101, '2020-08-15 19:53:53', '2020-08-15 19:53:53', NULL, NULL, '/simpleUploader/checkFileMd5', '文件完整度验证', 'simpleUploader', 'GET');
23+
INSERT INTO `sys_apis` VALUES (102, '2020-08-15 22:28:04', '2020-08-15 22:28:04', NULL, NULL, '/simpleUploader/mergeFileMd5', '上传完成合并文件', 'simpleUploader', 'GET');
24+
25+
INSERT INTO `sys_authority_menus` VALUES ('888', 53);
26+
27+
INSERT INTO `sys_base_menus` VALUES (53, '2020-08-15 11:41:49', '2020-08-15 11:43:15', NULL, 0, 19, 'simpleUploader', 'simpleUploader', 0, 'view/example/simpleUploader/simpleUploader', '断点续传(插件版)', 'upload', NULL, 6, 0, 0);

server/db/qmplus.sql

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
Target Server Version : 50640
1212
File Encoding : 65001
1313
14-
Date: 11/08/2020 23:22:30
14+
Date: 15/08/2020 23:09:13
1515
*/
1616

1717
SET NAMES utf8mb4;
@@ -176,6 +176,9 @@ INSERT INTO `casbin_rule` VALUES ('p', '888', '/sysOperationRecord/updateSysOper
176176
INSERT INTO `casbin_rule` VALUES ('p', '888', '/sysOperationRecord/findSysOperationRecord', 'GET', '', '', '');
177177
INSERT INTO `casbin_rule` VALUES ('p', '888', '/sysOperationRecord/getSysOperationRecordList', 'GET', '', '', '');
178178
INSERT INTO `casbin_rule` VALUES ('p', '888', '/sysOperationRecord/deleteSysOperationRecordByIds', 'DELETE', '', '', '');
179+
INSERT INTO `casbin_rule` VALUES ('p', '888', '/simpleUploader/upload', 'POST', '', '', '');
180+
INSERT INTO `casbin_rule` VALUES ('p', '888', '/simpleUploader/checkFileMd5', 'GET', '', '', '');
181+
INSERT INTO `casbin_rule` VALUES ('p', '888', '/simpleUploader/mergeFileMd5', 'GET', '', '', '');
179182

180183
-- ----------------------------
181184
-- Table structure for exa_customers
@@ -257,6 +260,22 @@ CREATE TABLE `exa_files` (
257260
INDEX `idx_exa_files_deleted_at`(`deleted_at`) USING BTREE
258261
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
259262

263+
-- ----------------------------
264+
-- Table structure for exa_simple_uploaders
265+
-- ----------------------------
266+
DROP TABLE IF EXISTS `exa_simple_uploaders`;
267+
CREATE TABLE `exa_simple_uploaders` (
268+
`chunk_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '当前切片标记',
269+
`current_chunk_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '当前切片容量',
270+
`current_chunk_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '切片本地路径',
271+
`total_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '总容量',
272+
`identifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件标识(md5)',
273+
`filename` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件名',
274+
`total_chunks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '切片总数',
275+
`is_done` tinyint(1) NULL DEFAULT NULL COMMENT '是否上传完成',
276+
`file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件本地路径'
277+
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
278+
260279
-- ----------------------------
261280
-- Table structure for jwt_blacklists
262281
-- ----------------------------
@@ -269,7 +288,7 @@ CREATE TABLE `jwt_blacklists` (
269288
`jwt` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT 'jwt',
270289
PRIMARY KEY (`id`) USING BTREE,
271290
INDEX `idx_jwt_blacklists_deleted_at`(`deleted_at`) USING BTREE
272-
) ENGINE = InnoDB AUTO_INCREMENT = 57 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
291+
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
273292

274293
-- ----------------------------
275294
-- Table structure for sys_apis
@@ -288,7 +307,7 @@ CREATE TABLE `sys_apis` (
288307
PRIMARY KEY (`id`) USING BTREE,
289308
INDEX `idx_apis_deleted_at`(`deleted_at`) USING BTREE,
290309
INDEX `idx_sys_apis_deleted_at`(`deleted_at`) USING BTREE
291-
) ENGINE = InnoDB AUTO_INCREMENT = 106 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
310+
) ENGINE = InnoDB AUTO_INCREMENT = 103 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
292311

293312
-- ----------------------------
294313
-- Records of sys_apis
@@ -356,6 +375,9 @@ INSERT INTO `sys_apis` VALUES (96, '2020-07-05 14:34:20', '2020-07-05 14:34:20',
356375
INSERT INTO `sys_apis` VALUES (97, '2020-07-05 15:02:07', '2020-07-05 15:02:07', NULL, NULL, '/autoCode/getDB', '获取所有数据库', 'autoCode', 'GET');
357376
INSERT INTO `sys_apis` VALUES (98, '2020-07-05 16:32:08', '2020-07-05 16:32:08', NULL, NULL, '/autoCode/getColume', '获取所选table的所有字段', 'autoCode', 'GET');
358377
INSERT INTO `sys_apis` VALUES (99, '2020-07-07 15:59:53', '2020-07-07 15:59:53', NULL, NULL, '/sysOperationRecord/deleteSysOperationRecordByIds', '批量删除操作历史', 'sysOperationRecord', 'DELETE');
378+
INSERT INTO `sys_apis` VALUES (100, '2020-08-15 12:10:55', '2020-08-15 12:10:55', NULL, NULL, '/simpleUploader/upload', '插件版分片上传', 'simpleUploader', 'POST');
379+
INSERT INTO `sys_apis` VALUES (101, '2020-08-15 19:53:53', '2020-08-15 19:53:53', NULL, NULL, '/simpleUploader/checkFileMd5', '文件完整度验证', 'simpleUploader', 'GET');
380+
INSERT INTO `sys_apis` VALUES (102, '2020-08-15 22:28:04', '2020-08-15 22:28:04', NULL, NULL, '/simpleUploader/mergeFileMd5', '上传完成合并文件', 'simpleUploader', 'GET');
359381

360382
-- ----------------------------
361383
-- Table structure for sys_authorities
@@ -417,6 +439,7 @@ INSERT INTO `sys_authority_menus` VALUES ('888', 42);
417439
INSERT INTO `sys_authority_menus` VALUES ('888', 50);
418440
INSERT INTO `sys_authority_menus` VALUES ('888', 51);
419441
INSERT INTO `sys_authority_menus` VALUES ('888', 52);
442+
INSERT INTO `sys_authority_menus` VALUES ('888', 53);
420443
INSERT INTO `sys_authority_menus` VALUES ('8881', 1);
421444
INSERT INTO `sys_authority_menus` VALUES ('8881', 2);
422445
INSERT INTO `sys_authority_menus` VALUES ('8881', 18);
@@ -460,7 +483,7 @@ CREATE TABLE `sys_base_menu_parameters` (
460483
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
461484
PRIMARY KEY (`id`) USING BTREE,
462485
INDEX `idx_sys_base_menu_parameters_deleted_at`(`deleted_at`) USING BTREE
463-
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
486+
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
464487

465488
-- ----------------------------
466489
-- Table structure for sys_base_menus
@@ -492,7 +515,7 @@ CREATE TABLE `sys_base_menus` (
492515
-- Records of sys_base_menus
493516
-- ----------------------------
494517
INSERT INTO `sys_base_menus` VALUES (1, '2019-09-19 22:05:18', '2020-05-30 15:43:06', NULL, 0, 0, 'dashboard', 'dashboard', 0, 'view/dashboard/index.vue', '仪表盘', 'setting', '仪表盘', 1, 0, 0);
495-
INSERT INTO `sys_base_menus` VALUES (2, '2019-09-19 22:06:17', '2020-05-10 21:31:50', NULL, 0, 0, 'about', 'about', 0, 'view/about/index.vue', '关于我们', 'info', '测试菜单', 7, 0, 0);
518+
INSERT INTO `sys_base_menus` VALUES (2, '2019-09-19 22:06:17', '2020-08-11 23:26:21', NULL, 0, 0, 'about', 'about', 0, 'view/about/index.vue', '关于我们', 'info', '测试菜单', 7, 0, 0);
496519
INSERT INTO `sys_base_menus` VALUES (3, '2019-09-19 22:06:38', '2020-04-24 10:16:43', NULL, 0, 0, 'admin', 'superAdmin', 0, 'view/superAdmin/index.vue', '超级管理员', 'user-solid', '超级管理员', 3, 0, 0);
497520
INSERT INTO `sys_base_menus` VALUES (4, '2019-09-19 22:11:53', '2020-05-30 15:43:25', NULL, 0, 3, 'authority', 'authority', 0, 'view/superAdmin/authority/authority.vue', '角色管理', 's-custom', '角色管理', 1, 0, 0);
498521
INSERT INTO `sys_base_menus` VALUES (5, '2019-09-19 22:13:18', '2020-04-30 17:45:27', NULL, 0, 3, 'menu', 'menu', 0, 'view/superAdmin/menu/menu.vue', '菜单管理', 's-order', '菜单管理', 2, 1, 0);
@@ -515,6 +538,7 @@ INSERT INTO `sys_base_menus` VALUES (45, '2020-04-29 17:19:34', '2020-07-04 18:2
515538
INSERT INTO `sys_base_menus` VALUES (50, '2020-06-24 19:49:54', '2020-06-28 20:34:47', NULL, 0, 3, 'dictionary', 'dictionary', 0, 'view/superAdmin/dictionary/sysDictionary.vue', '字典管理', 'notebook-2', NULL, 5, 0, 0);
516539
INSERT INTO `sys_base_menus` VALUES (51, '2020-06-24 19:51:33', '2020-06-28 20:35:04', NULL, 0, 3, 'dictionaryDetail/:id', 'dictionaryDetail', 1, 'view/superAdmin/dictionary/sysDictionaryDetail.vue', '字典详情', 's-order', NULL, 1, 0, 0);
517540
INSERT INTO `sys_base_menus` VALUES (52, '2020-06-29 13:31:17', '2020-07-07 16:05:34', NULL, 0, 3, 'operation', 'operation', 0, 'view/superAdmin/operation/sysOperationRecord.vue', '操作历史', 'time', NULL, 6, 0, 0);
541+
INSERT INTO `sys_base_menus` VALUES (53, '2020-08-15 11:41:49', '2020-08-15 11:43:15', NULL, 0, 19, 'simpleUploader', 'simpleUploader', 0, 'view/example/simpleUploader/simpleUploader', '断点续传(插件版)', 'upload', NULL, 6, 0, 0);
518542

519543
-- ----------------------------
520544
-- Table structure for sys_data_authority_id
@@ -636,12 +660,7 @@ CREATE TABLE `sys_operation_records` (
636660
`resp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '响应Body',
637661
PRIMARY KEY (`id`) USING BTREE,
638662
INDEX `idx_sys_operation_records_deleted_at`(`deleted_at`) USING BTREE
639-
) ENGINE = InnoDB AUTO_INCREMENT = 343 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
640-
641-
-- ----------------------------
642-
-- Records of sys_operation_records
643-
-- ----------------------------
644-
INSERT INTO `sys_operation_records` VALUES (342, '2020-08-11 23:21:30', '2020-08-11 23:21:30', NULL, '127.0.0.1', 'POST', '/authority/getAuthorityList', 200, 3906600, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36', '', '{\"page\":1,\"pageSize\":999}', 10, '{\"code\":0,\"data\":{\"list\":[{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-06-13T16:07:37+08:00\",\"DeletedAt\":null,\"authorityId\":\"888\",\"authorityName\":\"普通用户\",\"parentId\":\"0\",\"dataAuthorityId\":[{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-06-13T16:07:37+08:00\",\"DeletedAt\":null,\"authorityId\":\"888\",\"authorityName\":\"普通用户\",\"parentId\":\"0\",\"dataAuthorityId\":null,\"children\":null,\"menus\":null},{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-04-24T10:16:42+08:00\",\"DeletedAt\":null,\"authorityId\":\"8881\",\"authorityName\":\"普通用户子角色\",\"parentId\":\"888\",\"dataAuthorityId\":null,\"children\":null,\"menus\":null},{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-04-24T10:16:42+08:00\",\"DeletedAt\":null,\"authorityId\":\"9528\",\"authorityName\":\"测试角色\",\"parentId\":\"0\",\"dataAuthorityId\":null,\"children\":null,\"menus\":null}],\"children\":[{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-04-24T10:16:42+08:00\",\"DeletedAt\":null,\"authorityId\":\"8881\",\"authorityName\":\"普通用户子角色\",\"parentId\":\"888\",\"dataAuthorityId\":[],\"children\":[],\"menus\":null}],\"menus\":null},{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-04-24T10:16:42+08:00\",\"DeletedAt\":null,\"authorityId\":\"9528\",\"authorityName\":\"测试角色\",\"parentId\":\"0\",\"dataAuthorityId\":[{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-04-24T10:16:42+08:00\",\"DeletedAt\":null,\"authorityId\":\"8881\",\"authorityName\":\"普通用户子角色\",\"parentId\":\"888\",\"dataAuthorityId\":null,\"children\":null,\"menus\":null},{\"CreatedAt\":\"2020-04-04T11:44:56+08:00\",\"UpdatedAt\":\"2020-04-24T10:16:42+08:00\",\"DeletedAt\":null,\"authorityId\":\"9528\",\"authorityName\":\"测试角色\",\"parentId\":\"0\",\"dataAuthorityId\":null,\"children\":null,\"menus\":null}],\"children\":[],\"menus\":null}],\"total\":0,\"page\":1,\"pageSize\":999},\"msg\":\"操作成功\"}');
663+
) ENGINE = InnoDB AUTO_INCREMENT = 358 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
645664

646665
-- ----------------------------
647666
-- Table structure for sys_users

server/initialize/db_table.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ func DBTables() {
2121
model.ExaFileUploadAndDownload{},
2222
model.ExaFile{},
2323
model.ExaFileChunk{},
24+
model.ExaSimpleUploader{},
2425
model.ExaCustomer{},
2526
model.SysOperationRecord{},
2627
)

server/initialize/router.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ func Routers() *gin.Engine {
2929
router.InitAuthorityRouter(ApiGroup) // 注册角色路由
3030
router.InitApiRouter(ApiGroup) // 注册功能api路由
3131
router.InitFileUploadAndDownloadRouter(ApiGroup) // 文件上传下载功能路由
32+
router.InitSimpleUploaderRouter(ApiGroup) // 断点续传(插件版)
3233
router.InitWorkflowRouter(ApiGroup) // 工作流相关路由
3334
router.InitCasbinRouter(ApiGroup) // 权限相关路由
3435
router.InitJwtRouter(ApiGroup) // jwt相关路由
@@ -38,6 +39,7 @@ func Routers() *gin.Engine {
3839
router.InitSysDictionaryDetailRouter(ApiGroup) // 字典详情管理
3940
router.InitSysDictionaryRouter(ApiGroup) // 字典管理
4041
router.InitSysOperationRecordRouter(ApiGroup) // 操作记录
42+
4143
global.GVA_LOG.Info("router register success")
4244
return Router
4345
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package model
2+
3+
type ExaSimpleUploader struct {
4+
ChunkNumber string `json:"chunkNumber" gorm:"comment:'当前切片标记'"`
5+
CurrentChunkSize string `json:"currentChunkSize" gorm:"comment:'当前切片容量'"`
6+
CurrentChunkPath string `json:"currentChunkPath" gorm:"comment:'切片本地路径'"`
7+
TotalSize string `json:"totalSize" gorm:"comment:'总容量'"`
8+
Identifier string `json:"identifier" gorm:"comment:'文件标识(md5)'"`
9+
Filename string `json:"filename" gorm:"comment:'文件名'"`
10+
TotalChunks string `json:"totalChunks" gorm:"comment:'切片总数'"`
11+
IsDone bool `json:"isDone" gorm:"comment:'是否上传完成'"`
12+
FilePath string `json:"filePath" gorm:"comment:'文件本地路径'"`
13+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package router
2+
3+
import (
4+
"gin-vue-admin/api/v1"
5+
"gin-vue-admin/middleware"
6+
"github.com/gin-gonic/gin"
7+
)
8+
9+
func InitSimpleUploaderRouter(Router *gin.RouterGroup) {
10+
ApiRouter := Router.Group("simpleUploader").
11+
Use(middleware.JWTAuth()).
12+
Use(middleware.CasbinHandler())
13+
{
14+
ApiRouter.POST("upload", v1.SimpleUploaderUpload) // 上传功能
15+
ApiRouter.GET("checkFileMd5", v1.CheckFileMd5) // 文件完整度验证
16+
ApiRouter.GET("mergeFileMd5", v1.MergeFileMd5) // 合并文件
17+
}
18+
}

0 commit comments

Comments
 (0)