gpt4 book ai didi

java - 从服务器下载的文件与之前保存的原始文件不同

转载 作者:行者123 更新时间:2023-12-02 03:08:11 25 4
gpt4 key购买 nike

我无法找出为什么从我的服务器下载后的 mp3 文件与之前保存在此处的原始文件不同。

这是我的 Controller 方法。文件的内容(byte[]内容)与此阶段的原始文件相同 - 原始文件与从数据库检索的文件相同(在调试器中检查)。

    @ResponseBody
@RequestMapping(method = RequestMethod.GET, value = "/{sampleId}/file")
public HttpEntity<byte[]> getFile(@PathVariable Long sampleId) {
ResourceEntity resourceEntity = testSampleRepository.getFile(sampleId);
byte[] content = resourceEntity.getContent();
String fileName = resourceEntity.getFileName();
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("audio", "mpeg"));
header.set(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename=" + fileName.replace(" ", "_"));
header.setContentLength(content.length);
return new HttpEntity<byte[]>(content, header);
}

这是文件的不同之处(左侧是原始文件): enter image description here

为什么使用 HTTP 传递会扭曲我的文件? mediaTypes 应该强制执行某些编码吗? (使用“audio/mpeg”媒体类型和不使用它没有区别)。

最佳答案

如果您设置 Produces =“application/octet-stream”属性( MediaType.APPLICATION_OCTET_STREAM ),它应该可以工作。否则,您就会被 Spring 的转换器框架所困。

您可能想看看这里,看来您的问题非常相似:Spring MVC: How to return image in @ResponseBody? .

关于java - 从服务器下载的文件与之前保存的原始文件不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41435209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com