package fileuploaddownload import ( "fmt" "os" "path" "strconv" "time" "gin_server_admin/commonus" "gin_server_admin/model/common/response" "github.com/gin-gonic/gin" ) type FileUploadDownload struct{} type urlData struct { Type int `json:"type"` Sign string `json:"sign"` } // 上传文件(远程) func (f *FileUploadDownload) LongRangeFileUpload(c *gin.Context) { _, fileHeader, fileErr := c.Request.FormFile("file") typePostForm := c.PostForm("type") // fmt.Printf("FileSize--------->%v\n", fileHeader.Size) var urlData urlData tageExt := path.Ext(fileHeader.Filename) // fmt.Printf("Type------------------->%v\n", typePostForm) if urlData.Type == 0 { if typePostForm != "" { typePostFormInt, _ := strconv.Atoi(typePostForm) if typePostFormInt != 0 { urlData.Type = typePostFormInt } else { urlData.Type = commonus.JudgeUpFileType(tageExt) } } else { // urlData.Type = 1 urlData.Type = commonus.JudgeUpFileType(tageExt) } } // fmt.Printf("Type------------------->%v\n", urlData.Type) if fileErr != nil { response.Result(101, fileHeader, "获取文件错误!", c) return } // fileNameAry := strings.Split(fileHeader.Filename, ".") //拆分文件名称,获取类型及文件原名 // if len(fileNameAry) < 2 { // response.Result(0, fileHeader, "文件上传错误!", c) // return // } transitionFileName := fmt.Sprintf("%v%v", commonus.GetFileNumberEs(), tageExt) // fmt.Printf("转接------------>%v\n", transitionFileName) // fmt.Printf("文件名长度------------>%v\n", len(fileHeader.Filename)) // localFileSave := "uploads/" + fileHeader.Filename localFileSave := fmt.Sprintf("uploads/%v", transitionFileName) // fmt.Printf("文件保存地址--1111->%v\n", localFileSave) c.SaveUploadedFile(fileHeader, localFileSave) // filePath := "G:/goobject/src/git_public/gin-vue-admin/gin_server_admin/go.mod" // strinUrl := "http://docu.hxgk.net/uploadfileing/uploadimging" // fmt.Printf("文件保存地址--->%v\n", localFileSave) str, _ := os.Getwd() filePath := str + "/" + localFileSave //文件转接物理地址 // fmt.Printf("文件物理保存地址--->%v\n", filePath) outPut := commonus.MapOut() // outPut["fileAttr"] = fileAttr fileCallBack := postFormDataWithSingleFile(filePath, urlData.Type) // outPut["msg"] = urlData if fileCallBack.Code != 0 && fileCallBack.Code != 1 { response.Result(102, fileCallBack, fileCallBack.Msg, c) return } // var fileAttr FileAttribute //获取文件基础属性 var upLoadFileStruct UpLoadFileStruct upLoadFileStruct.ID = commonus.GetFileNumberEs() upLoadFileStruct.CreatedAt = time.Now() upLoadFileStruct.UpdatedAt = time.Now() upLoadFileStruct.Key = fileCallBack.Data.NewName upLoadFileStruct.Name = fileHeader.Filename upLoadFileStruct.Tag = tageExt upLoadFileStruct.Url = fileCallBack.Data.Callbackurl upLoadFileStruct.PhysicsPath = fileCallBack.Data.Physicspath upLoadFileStruct.FileSize = fileCallBack.Data.GetSize upLoadFileStruct.Type = urlData.Type upLoadFileStruct.Size = commonus.FormatFileSize(fileCallBack.Data.GetSize) // outPut["CallBackFileIng"] = postFormDataWithSingleFile(filePath, urlData.Type) os.RemoveAll(filePath) //删除转接文件 outPut["file"] = upLoadFileStruct // fmt.Printf("返回值====》%v\n", outPut) response.Result(0, upLoadFileStruct, fileCallBack.Msg, c) }