123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package api
- import (
- "fmt"
- "gin-vue-admin/controller/servers"
- "gin-vue-admin/model/dbModel"
- "github.com/gin-gonic/gin"
- "io/ioutil"
- "strconv"
- )
- func BreakpointContinue(c *gin.Context) {
- fileMd5 := c.Request.FormValue("fileMd5")
- fileName := c.Request.FormValue("fileName")
- chunkMd5 := c.Request.FormValue("chunkMd5")
- chunkNumber, _ := strconv.Atoi(c.Request.FormValue("chunkNumber"))
- chunkTotal, _ := strconv.Atoi(c.Request.FormValue("chunkTotal"))
- _, FileHeader, err := c.Request.FormFile("file")
- if err != nil {
- servers.ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{})
- } else {
- f, err := FileHeader.Open()
- if err != nil {
- servers.ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{})
- } else {
- cen, _ := ioutil.ReadAll(f)
- defer f.Close()
- if flag := servers.CheckMd5(cen, chunkMd5); flag {
- err, file := new(dbModel.ExaFile).FindOrCreateFile(fileMd5, fileName, chunkTotal)
- if err != nil {
- servers.ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{})
- } else {
- err, pathc := servers.BreakPointContinue(cen, fileName, chunkNumber, chunkTotal, fileMd5)
- if err != nil {
- servers.ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{})
- } else {
- err = file.CreateFileChunk(pathc, chunkNumber)
- if err != nil {
- servers.ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{})
- } else {
- servers.ReportFormat(c, true, "切片创建成功", gin.H{})
- }
- }
- }
- } else {
- }
- }
- }
- }
- func FindFile(c *gin.Context) {
- fileMd5 := c.Query("fileMd5")
- fileName := c.Query("fileName")
- chunkTotal, _ := strconv.Atoi(c.Query("chunkTotal"))
- err, file := new(dbModel.ExaFile).FindOrCreateFile(fileMd5, fileName, chunkTotal)
- if err != nil {
- servers.ReportFormat(c, false, fmt.Sprintf("查找失败:%v", err), gin.H{})
- } else {
- servers.ReportFormat(c, true, "查找成功", gin.H{"file": file})
- }
- }
- func BreakpointContinueFinish(c *gin.Context) {
- fileMd5 := c.Query("fileMd5")
- fileName := c.Query("fileName")
- err, filePath := servers.MakeFile(fileName, fileMd5)
- if err != nil {
- servers.ReportFormat(c, true, fmt.Sprintf("文件创建失败:%v", err), gin.H{})
- } else {
- servers.ReportFormat(c, true, "文件创建成功", gin.H{"filePath": filePath})
- }
- }
- func RemoveChunk(c *gin.Context) {
- fileMd5 := c.Query("fileMd5")
- fileName := c.Query("fileName")
- filePath := c.Query("filePath")
- err := servers.RemoveChunk(fileMd5)
- err = new(dbModel.ExaFile).DeleteFileChunk(fileMd5, fileName, filePath)
- if err != nil {
- servers.ReportFormat(c, true, fmt.Sprintf("缓存切片删除失败:%v", err), gin.H{})
- } else {
- servers.ReportFormat(c, true, "缓存切片删除成功", gin.H{})
- }
- }
|