fix: 文件下载接口无文件响应json
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user