我無法找到爲什麼從我的服務器下載的mp3文件與之前保存的原始文件不同之處。從服務器下載的文件與以前保存的原始文件不同
這是我的控制器方法。文件(字節[]內容)的內容與該階段的原始文件相同 - 原始文件與從數據庫檢索到的文件相同(在調試器中檢查)。
@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);
}
爲什麼通過使用HTTP distors我的檔案? mediaTypes應該執行某些編碼嗎? (與「audio/mpeg」mediaType沒有區別,沒有它)。
我覺得你的媒體類型不對,試試audio/mpeg3,https://www.sitepoint.com/web-foundations/mime-types-complete-list/ –
你需要顯示下載文件的代碼,你需要說出哪一個是原始的,哪一個是下載的。從它的外觀來看,正確的文件包含純ASCII字符,因此它可能是base64編碼的(儘管通過HTTP連接不需要) –
@ErwinBolwidt Base64可能來自FORM POST'multipart/form-data'上傳。 – Andreas