fix: 文件下载接口无文件响应json

This commit is contained in:
TsMask
2024-04-12 17:25:06 +08:00
parent 15445c8e59
commit 608d726e54
2 changed files with 8 additions and 10 deletions

View File

@@ -177,13 +177,13 @@ func ReadUploadFileStream(filePath, headerRange string) (map[string]any, error)
"range": "", "range": "",
"chunkSize": 0, "chunkSize": 0,
"fileSize": 0, "fileSize": 0,
"data": nil, "data": []byte{},
} }
// 文件大小 // 文件大小
fileSize := getFileSize(fileAsbPath) fileSize := getFileSize(fileAsbPath)
if fileSize <= 0 { if fileSize <= 0 {
return result, nil return result, fmt.Errorf("file does not exist")
} }
result["fileSize"] = fileSize result["fileSize"] = fileSize

View File

@@ -43,13 +43,6 @@ func (s *FileController) Download(c *gin.Context) {
return return
} }
routerPath := string(decodedBytes) routerPath := string(decodedBytes)
// 地址文件名截取
fileName := routerPath[strings.LastIndex(routerPath, "/")+1:]
// 响应头
c.Writer.Header().Set("Content-Disposition", `attachment; filename="`+url.QueryEscape(fileName)+`"`)
c.Writer.Header().Set("Accept-Ranges", "bytes")
c.Writer.Header().Set("Content-Type", "application/octet-stream")
// 断点续传 // 断点续传
headerRange := c.GetHeader("Range") headerRange := c.GetHeader("Range")
@@ -58,6 +51,12 @@ func (s *FileController) Download(c *gin.Context) {
c.JSON(200, result.ErrMsg(err.Error())) c.JSON(200, result.ErrMsg(err.Error()))
return return
} }
// 响应头
c.Writer.Header().Set("Content-Disposition", `attachment; filename="`+url.QueryEscape(filepath.Base(routerPath))+`"`)
c.Writer.Header().Set("Accept-Ranges", "bytes")
c.Writer.Header().Set("Content-Type", "application/octet-stream")
if headerRange != "" { if headerRange != "" {
c.Writer.Header().Set("Content-Range", fmt.Sprint(resultMap["range"])) c.Writer.Header().Set("Content-Range", fmt.Sprint(resultMap["range"]))
c.Writer.Header().Set("Content-Length", fmt.Sprint(resultMap["chunkSize"])) c.Writer.Header().Set("Content-Length", fmt.Sprint(resultMap["chunkSize"]))
@@ -65,7 +64,6 @@ func (s *FileController) Download(c *gin.Context) {
} else { } else {
c.Writer.Header().Set("Content-Length", fmt.Sprint(resultMap["fileSize"])) c.Writer.Header().Set("Content-Length", fmt.Sprint(resultMap["fileSize"]))
c.Status(200) c.Status(200)
} }
c.Writer.Write(resultMap["data"].([]byte)) c.Writer.Write(resultMap["data"].([]byte))
} }