1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package example
- import (
- "github.com/flipped-aurora/gin-vue-admin/server/global"
- "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
- "github.com/flipped-aurora/gin-vue-admin/server/model/example"
- "github.com/flipped-aurora/gin-vue-admin/server/utils"
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- )
- type SimpleUploaderApi struct {
- }
- // @Tags SimpleUploader
- // @Summary 断点续传插件版示例
- // @Security ApiKeyAuth
- // @accept multipart/form-data
- // @Produce application/json
- // @Param file formData file true "断点续传插件版示例"
- // @Success 200 {string} string "{"success":true,"data":{},"msg":"切片创建成功"}"
- // @Router /SimpleUploaderApi/upload [post]
- func (s *SimpleUploaderApi) SimpleUploaderUpload(c *gin.Context) {
- var chunk example.ExaSimpleUploader
- _, header, err := c.Request.FormFile("file")
- chunk.Filename = c.PostForm("filename")
- chunk.ChunkNumber = c.PostForm("chunkNumber")
- chunk.CurrentChunkSize = c.PostForm("currentChunkSize")
- chunk.Identifier = c.PostForm("identifier")
- chunk.TotalSize = c.PostForm("totalSize")
- chunk.TotalChunks = c.PostForm("totalChunks")
- var chunkDir = "./chunk/" + chunk.Identifier + "/"
- hasDir, _ := utils.PathExists(chunkDir)
- if !hasDir {
- if err := utils.CreateDir(chunkDir); err != nil {
- global.GVA_LOG.Error("创建目录失败!", zap.Any("err", err))
- }
- }
- chunkPath := chunkDir + chunk.Filename + chunk.ChunkNumber
- err = c.SaveUploadedFile(header, chunkPath)
- if err != nil {
- global.GVA_LOG.Error("切片创建失败!", zap.Any("err", err))
- response.FailWithMessage("切片创建失败", c)
- return
- }
- chunk.CurrentChunkPath = chunkPath
- err = simpleUploaderService.SaveChunk(chunk)
- if err != nil {
- global.GVA_LOG.Error("切片创建失败!", zap.Any("err", err))
- response.FailWithMessage("切片创建失败", c)
- return
- } else {
- response.OkWithMessage("切片创建成功", c)
- }
- }
- // @Tags SimpleUploader
- // @Summary 断点续传插件版示例
- // @Security ApiKeyAuth
- // @Produce application/json
- // @Param md5 query string true "md5"
- // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
- // @Router /SimpleUploaderApi/checkFileMd5 [get]
- func (s *SimpleUploaderApi) CheckFileMd5(c *gin.Context) {
- md5 := c.Query("md5")
- err, chunks, isDone := simpleUploaderService.CheckFileMd5(md5)
- if err != nil {
- global.GVA_LOG.Error("md5读取失败!", zap.Any("err", err))
- response.FailWithMessage("md5读取失败", c)
- } else {
- response.OkWithDetailed(gin.H{
- "chunks": chunks,
- "isDone": isDone,
- }, "查询成功", c)
- }
- }
- // @Tags SimpleUploader
- // @Summary 合并文件
- // @Security ApiKeyAuth
- // @Produce application/json
- // @Param md5 query string true "md5"
- // @Success 200 {string} string "{"success":true,"data":{},"msg":"合并成功"}"
- // @Router /SimpleUploaderApi/mergeFileMd5 [get]
- func (s *SimpleUploaderApi) MergeFileMd5(c *gin.Context) {
- md5 := c.Query("md5")
- fileName := c.Query("fileName")
- err := simpleUploaderService.MergeFileMd5(md5, fileName)
- if err != nil {
- global.GVA_LOG.Error("md5读取失败!", zap.Any("err", err))
- response.FailWithMessage("md5读取失败", c)
- } else {
- response.OkWithMessage("合并成功", c)
- }
- }
|