以前に保存されていた元のファイルよりも、私のサーバからダウンロードした後に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);
}
これは、ファイルは(左が1つのオリジナルである)どのように異なるかです:
HTTPを使用して渡すと、私のファイルをdistorsなぜ? mediaTypesは特定のエンコーディングを強制する必要がありますか? (「audio/mpeg」mediaTypeとの違いはありませんでした。
あなたのメディアの種類が間違っていると思います。オーディオ/ mpeg3を試してください。https://www.sitepoint.com/web-foundations/mime-types-complete-list/ –
ファイルをダウンロードするコードを表示する必要があります。あなたはどちらがオリジナルであり、どれがダウンロードされたものかを言う必要があります。その外観から、正しいファイルにはASCIIのみの文字が含まれているので、base64でエンコードされています(HTTP接続では不要ですが) –
@ErwinBolwidt Base64はFORM POSTの 'multipart/form-data'アップロードする。 – Andreas