Почему файл Excel из .NET Core Web Api поврежден?

Я использую .NET Core с EPPlus.Core для создания файлов Excel, предназначенных для создания отчетов. К сожалению, данные Excel повреждены где-то между сервером и клиентом (Angular2), где я использую FileSaver.js для сохранения файла Excel на диск.

Это мой контроллер веб-API:

[HttpGet]
public async Task<IActionResult> Get()
{
    try
    {
        var report = await _reportService.GetReportAsync();
        var mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        var fileBytes = report.Bytes;
        return File(fileBytes, mimeType, report.Name);
    }
    catch (Exception exception)
    {
        return StatusCode((int)HttpStatusCode.InternalServerError, exception);
        throw;
    }
}

Это служба отчетов:

public async Task<Report> GetReportAsync()
{
    byte[] bytes;
    using (var package = new ExcelPackage())
    {
        var worksheet = package.Workbook.Worksheets.Add("Employee");
        worksheet.Cells[1, 1].Value = "ID";
        worksheet.Cells[1, 2].Value = "Name";
        worksheet.Cells[1, 3].Value = "Gender";
        worksheet.Cells[1, 4].Value = "Salary (in $)";

        worksheet.Cells["A2"].Value = 1000;
        worksheet.Cells["B2"].Value = "Jon";
        worksheet.Cells["C2"].Value = "M";
        worksheet.Cells["D2"].Value = 5000;

        worksheet.Cells["A3"].Value = 1001;
        worksheet.Cells["B3"].Value = "Graham";
        worksheet.Cells["C3"].Value = "M";
        worksheet.Cells["D3"].Value = 10000;

        worksheet.Cells["A4"].Value = 1002;
        worksheet.Cells["B4"].Value = "Jenny";
        worksheet.Cells["C4"].Value = "F";
        worksheet.Cells["D4"].Value = 5000;
        bytes = package.GetAsByteArray();

        /* WORKS FINE - FILE IS SAVED AND IS NOT CORRUPT */
        const string path2 = @"c:\temp\test2.xlsx";
        await File.WriteAllBytesAsync(path2, bytes);
        /* WORKS FINE - FILE IS SAVED AND IS NOT CORRUPT */

    }
    return new Report(bytes);
}

Это код клиента:

this.http.get(this.baseUri + uri, query).subscribe(response => {
if (response.status === 200) {
        let fileSaver = require('file-saver');
        let mediaType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
        let blob = new Blob([response._body], { type: mediaType });
        let filename = 'test.xlsx';
        fileSaver.saveAs(blob, filename);
    }
});

Файл test2.xlsx успешно сохранен и открывается без проблем. Если я открою его в Notepad++, я увижу такой двоичный код:

test2.xlsx

Файл test.xlsx, загруженный клиентом Angular2, не открывается в Excel, потому что данные повреждены, и если я открою этот файл в Notepad++, я увижу, что есть разница - допустимые символы заменены дерьмом:

test.xlsx

Я прочитал ряд подобных вопросов, но ничто не смогло направить меня в правильном направлении. Несколько вещей, которые я пробовал:

  • Возврат приложения/октетного потока вместо файла Excel
  • Использование XHR вместо Angular http.get (не могу заставить это работать, потому что я использую токен Windows Negotiate и понятия не имею, как я могу использовать этот тип токена с XHR)
  • Попытался вернуть HttpResponseMessage вместо File следующим образом:

var httpResponseMessage = новое HttpResponseMessage {Content = новое ByteArrayContent(report.Bytes)}; httpResponseMessage.Content.Headers.Add("x-filename", report.Name); httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {FileName = Path.GetFileName(report.Name)}; httpResponseMessage.Content.Headers.ContentLength = отчет.Байт.Длина; httpResponseMessage.StatusCode = HttpStatusCode.OK; вернуть httpResponseMessage;

Это связано, но не одно и то же, мой файл поврежден до такой степени, что его нельзя отремонтировать и открыть.

Какие-либо предложения? Может дело в кодировке?

ОБНОВЛЕНИЕ

Шестнадцатеричный дамп действительного файла Excel:

50 4B 03 04 14 00 08 00 08 00 11 59 66 4B E4 48 AD AF 18 01 00 00 33 03 00 00 13 00 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C B5 92 CF 4A 03 31 10 C6 5F 65 C9 55 9A B4 1E 44 A4 DB 1E AA 1E 55 B0 3E C0 98 CC 76 43 F3 8F CC B4 B6 6F 6F 36 2B 22 A5 82 1E 7A 9A 24 DF CC F7 FD 08 33 5F 1E BC 6B F6 98 C9 C6 D0 8A 99 9C 8A 06 83 8E C6 86 4D 2B DE D6 8F 93 5B D1 10 43 30 E0 62 C0 56 1C 91 C4 72 31 5F 1F 13 52 53 66 03 B5 A2 67 4E 77 4A 91 EE D1 03 C9 98 30 14 A5 8B D9 03 97 6B DE A8 04 7A 0B 1B 54 D7 D3 E9 8D D2 31 30 06 9E F0 E0 21 16 F3 7B EC 60 E7 B8 59 8D EF 83 75 2B 20 25 67 35 70 C1 52 C5 4C 34 0F 87 22 8E 94 C3 5D FD 61 6E 1F CC 09 CC E4 0B 44 66 74 B5 87 7A 9B E8 EA 34 A0 A8 34 24 3C 97 8F C9 D6 E0 BF 22 62 D7 59 8D 26 EA 9D 2F 23 92 52 46 30 D4 23 B2 77 B2 56 E9 C1 86 31 F4 05 32 3F 81 2F AE EA E0 D4 47 CC DB F7 18 B7 B2 6A 17 01 18 22 EA F9 B7 FC 2A 92 AA 65 76 41 10 E2 A3 43 3A 47 31 2A 97 8C EE 21 A3 79 E5 5C 96 FC 3C C1 CF 86 6F 10 55 97 7E F1 09 50 4B 07 08 E4 48 AD AF 18 01 00 00 33 03 00 00 50 4B 03 04 14 00 08 00 08 00 11 59 66 4B 98 DA EB 8B AE 00 00 00 27 01 00 00 0B 00 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 8D CF C1 0E 82 30 0C 06 E0 57 59 7A 97 81 07 63 0C 83 8B 31 E1 6A F0 01 E6 56 06 01 D6 65 9B 0A 6F EF 8E 62 3C 78 6C FA F7 FB D3 B2 5E E6 89 3D D1 87 81 AC 80 22 CB 81 A1 55 A4 07 6B 04 DC DA CB EE 08 2C 44 69 B5 9C C8 A2 80 15 03 D4 55 79 C5 49 C6 74 12 FA C1 05 96 0C 1B 04 F4 31 BA 13 E7 41 F5 38 CB 90 91 43 9B 36 1D F9 59 C6 34 7A C3 9D 54 A3 34 C8 F7 79 7E E0 FE D3 80 AD C9 1A 2D C0 37 BA 00 D6 AE 0E FF B1 A9 EB 06 85 67 52 8F 19 6D FC 51 F1 95 48 B2 F4 06 A3 80 65 E2 2F F2 E3 9D 68 CC 12 0A BC 2A F9 E6 C1 EA 0D 50 4B 07 08 98 DA EB 8B AE 00 00 00 27 01 00 00 50 4B 03 04 14 00 08 00 08 00 11 59 66 4B 9C 2D 27 53 C1 00 00 00 4D 01 00 00 0F 00 00 00 78 6C 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 8D 8E B1 0E C2 30 0C 44 77 24 FE 21 CA 07 10 60 60 A8 52 16 60 40 42 82 89 3D A4 2E 8D 48 E2 C8 49 55 F8 7B D2 56 45 B0 B1 DD 9D CF 4F 27 3B A4 C7 0D F1 C1 9E CE FA 58 50 C9 9B 94 42 21 44 D4 0D 38 15 17 18 C0 E7 5B 8D E4 54 CA 96 EE 02 EB DA 68 D8 A3 6E 1D F8 24 D6 CB E5 46 10 58 95 0C FA D8 98 10 F9 48 FB 87 15 03 81 AA 62 03 90 9C 1D 51 4E 19 CF B7 F3 19 63 B2 5F 76 35 D0 C5 C1 E6 60 9A DB 87 4C 8C 25 F1 DB 92 03 EC F3 31 38 E6 95 83 92 1F 5C B0 F8 02 E0 6C 48 8F 55 C9 57 9C 51 61 B2 A0 63 95 F5 84 FC 62 48 AD AC BE 10 AB 5B 6B 77 59 9E FD 09 D5 F8 D9 B7 A5 98 36 6D DF 50 4B 07 08 9C 2D 27 53 C1 00 00 00 4D 01 00 00 50 4B 03 04 14 00 08 00 08 00 11 59 66 4B 81 62 92 A2 D6 00 00 00 34 02 00 00 1A 00 00 00 78 6C 2F 5F 72 65 6C 73 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 2E 72 65 6C 73 AD 91 CF 6A C3 30 0C 87 5F C5 E8 BE 38 E9 60 8C 51 B7 97 31 E8 B5 7F 1E 40 D8 4A 1C 9A D8 C6 D2 DA E5 ED 6B 36 56 52 28 63 87 9E 84 64 F4 FD 3E AC E5 FA 6B 1C D4 89 32 F7 31 18 68 AA 1A 14 05 1B 5D 1F 3A 03 87 FD C7 D3 2B 28 16 0C 0E 87 18 C8 C0 44 0C EB D5 72 4B 03 4A 59 61 DF 27 56 85 11 D8 80 17 49 6F 5A B3 F5 34 22 57 31 51 28 2F 6D CC 23 4A 69 73 A7 13 DA 23 76 A4 17 75 FD A2 F3 9C 01 B7 4C B5 71 06 F2 C6 35 A0 F6 53 A2 FF B0 63 DB F6 96 DE A3 FD 1C 29 C8 9D 08 7D 8E F9 C8 9E 48 0A 14 73 47 62 E0 3A 62 FD 5D 9A AA 50 41 DF 97 59 3C 52 86 65 1A CA 5F 5E 4D 7E FA BF E2 9F 1F 1A EF 31 93 DB 49 2E 87 9E 5B CC C7 BF 32 FA E6 DA AB 0B 50 4B 07 08 81 62 92 A2 D6 00 00 00 34 02 00 00 50 4B 03 04 14 00 08 00 08 00 11 59 66 4B 2A 7B 81 AB 61 01 00 00 C3 03 00 00 18 00 00 00 78 6C 2F 77 6F 72 6B 73 68 65 65 74 73 2F 73 68 65 65 74 31 2E 78 6D 6C 8D 93 DD 4E 83 30 18 86 6F A5 E9 B9 2B 7F 9B CB 02 2C 9B 64 D1 33 E3 81 E7 15 3E 46 33 A0 A4 ED 86 F7 E6 81 97 E4 2D 58 BA 05 A1 8D C6 B3 16 9E BE EF C3 97 F2 F5 F1 19 6F DF 9B 1A 5D 40 48 C6 DB 04 FB 0B 0F 23 68 73 5E B0 F6 98 E0 B3 2A EF D6 78 9B C6 3D 17 27 59 01 28 A4 F1 56 6E 44 82 2B A5 BA 0D 21 32 AF A0 A1 72 C1 3B 68 F5 BB 92 8B 86 2A BD 15 47 C2 CB 92 E5 90 F1 FC DC 40 AB 48 E0 79 2B 22 A0 A6 4A 57 C9 8A 75 12 5F D3 FE 93 25 3B 01 B4 30 0A 4D 7D 8D 6A 28 6B 71 1A 17 4C A7 0F F6 48 40 99 E0 9D BF C9 22 8C 48 1A 1B F8 95 41 2F 27 6B 34 7C C9 1B E7 A7 61 F3 54 24 D8 33 2C 71 E0 83 29 7F 16 A8 80 92 9E 6B F5 C2 FB 47 60 C7 4A E9 21 2D 7F F2 33 AA 68 1A 0B DE 23 3D 12 5F EB E4 C3 62 E7 63 24 4D B6 C6 A5 7E 7A 49 BD 98 5C 74 4F 7E 23 F6 2E E1 CF 89 07 97 08 E6 44 E6 12 E1 48 10 ED 34 8A 05 A3 58 70 3B 62 0A 3D CF B6 0A 9C C4 C8 B2 72 89 A5 65 35 AD 58 4E 2B 66 4A E1 A8 14 CE 95 AC 31 EC 43 A7 70 65 29 B9 84 AD 64 55 FC E6 14 8D 4E D1 FC 80 35 F8 7D E4 34 DE 5B 4E 2E B1 B6 9C A2 BF C7 44 26 D7 AB D2 57 1F C4 81 73 05 C2 DC D6 F1 77 4C BF 01 50 4B 07 08 2A 7B 81 AB 61 01 00 00 C3 03 00 00 50 4B 03 04 14 00 08 00 08 00 11 59 66 4B FC 8A 2B 3D 46 01 00 00 69 03 00 00 0D 00 00 00 78 6C 2F 73 74 79 6C 65 73 2E 78 6D 6C 8D 53 4D 6F 83 30 0C BD 4F DA 7F 88 F8 01 4B 5B 69 3B 4C B0 CB 24 A4 5D 7A E9 0E BB 86 92 40 24 E7 43 89 99 60 BF 7E 40 D2 26 9D 98 D4 9B FD 9E F3 9E B1 4D E9 71 02 7E EA 39 47 32 2A D0 BE 2A 7A 44 FB 4A A9 3F F7 5C 31 FF 64 2C D7 33 23 8C 53 0C E7 D4 75 D4 5B C7 59 EB 97 47 0A E8 61 B7 7B A1 8A 49 5D BC 3D 3E 10 52 EA 41 D5 0A 3D 39 9B 41 63 55 EC 0A 42 03 21 8C 4E F0 3E 54 47 38 C6 73 E6 7F C8 37 83 99 DF 5F DE AD B0 66 8A 07 E2 9D 81 6C 9C 4C 6C 49 AF 0A 21 F4 D1 4E 02 5C ED 0E C9 6E 86 93 AE 65 88 DC E9 7A 06 49 8C 3F 27 CB AB 42 1B CD 6F 3C D2 B3 7B 25 3A C7 A6 FD E1 79 53 25 84 B1 D3 C6 B8 96 BB 8D D1 04 22 59 01 17 98 4F C5 C9 AE BF 01 D0 D8 3C 6D 0C A2 51 39 D2 4A D6 19 CD 20 EB 29 33 B9 24 B1 AF 33 07 38 2D F7 F1 25 36 9A 1B 05 09 AB FE 68 D7 2D 2F A3 8F 61 5C 38 CD 05 92 E4 5D 6A CC 5A 98 8E 83 6A B8 AB D7 D3 5B 8A 73 8F B5 A0 36 41 85 8C 62 C3 FA C6 75 ED 63 C3 F8 CA 91 E5 C6 AA E2 B8 B8 41 A6 D8 0C 12 50 EA FF 3E 2D 5A B4 A3 F8 7B F2 25 4D 3F D7 DB 2F 50 4B 07 08 FC 8A 2B 3D 46 01 00 00 69 03 00 00 50 4B 03 04 14 00 08 00 08 00 11 59 66 4B F3 7E 6F 36 C5 00 00 00 58 01 00 00 14 00 00 00 78 6C 2F 73 68 61 72 65 64 53 74 72 69 6E 67 73 2E 78 6D 6C 65 90 41 4A 04 31 10 45 AF 12 0A 17 BA 70 D2 BA 10 95 24 B3 50 46 14 74 A3 1E A0 E8 AE 99 0E 74 2A 6D AA 5A EC DB 1B 11 11 32 CB F7 3E FF 17 94 DB 7E A5 C9 7C 52 91 98 D9 C3 C5 A6 03 43 DC E7 21 F2 C1 C3 FB DB EE FC 1A 8C 28 F2 80 53 66 F2 B0 92 80 D9 06 27 A2 A6 56 59 3C 8C AA F3 AD B5 D2 8F 94 50 36 79 26 AE C9 3E 97 84 5A B1 1C AC CC 85 70 90 91 48 D3 64 2F BB EE CA 26 8C 0C A6 CF 0B AB 87 1B 30 0B C7 8F 85 EE FE B8 1E 88 C1 69 78 BC 77 56 83 B3 3F F4 6B 5E 30 51 EB 1E 88 07 2A AD 7D C5 09 CB 6A 4E 23 9B 93 B3 36 7C CA DC AA E7 A3 D9 82 23 A6 A3 26 31 AF AD DC FD 0B 5B 5F 13 BE 01 50 4B 07 08 F3 7E 6F 36 C5 00 00 00 58 01 00 00 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B E4 48 AD AF 18 01 00 00 33 03 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B 98 DA EB 8B AE 00 00 00 27 01 00 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 59 01 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B 9C 2D 27 53 C1 00 00 00 4D 01 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 40 02 00 00 78 6C 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B 81 62 92 A2 D6 00 00 00 34 02 00 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 03 00 00 78 6C 2F 5F 72 65 6C 73 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 2E 72 65 6C 73 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B 2A 7B 81 AB 61 01 00 00 C3 03 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 5C 04 00 00 78 6C 2F 77 6F 72 6B 73 68 65 65 74 73 2F 73 68 65 65 74 31 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B FC 8A 2B 3D 46 01 00 00 69 03 00 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 03 06 00 00 78 6C 2F 73 74 79 6C 65 73 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 11 59 66 4B F3 7E 6F 36 C5 00 00 00 58 01 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 84 07 00 00 78 6C 2F 73 68 61 72 65 64 53 74 72 69 6E 67 73 2E 78 6D 6C 50 4B 05 06 00 00 00 00 07 00 07 00 C2 01 00 00 8B 08 00 00 00 00

Шестнадцатеричный дамп поврежденного файла Excel:

50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 48 EF BF BD EF BF BD 18 01 00 00 33 03 00 00 13 00 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C EF BF BD EF BF BD EF BF BD 4A 03 31 10 EF BF BD 5F 65 EF BF BD 55 EF BF BD EF BF BD 1E 44 EF BF BD EF BF BD 1E EF BF BD 1E 55 EF BF BD 3E EF BF BD EF BF BD EF BF BD 76 43 EF BF BD CC B4 EF BF BD 6F 6F 36 2B 22 EF BF BD EF BF BD 1E 7A EF BF BD 24 EF BF BD EF BF BD EF BF BD EF BF BD 08 33 5F 1E EF BF BD 6B EF BF BD EF BF BD EF BF BD EF BF BD D0 8A EF BF BD EF BF BD EF BF BD 06 EF BF BD EF BF BD C6 86 4D 2B EF BF BD D6 8F EF BF BD 5B EF BF BD 10 43 30 EF BF BD 62 EF BF BD 56 1C EF BF BD EF BF BD 72 31 5F 1F 13 52 53 66 03 EF BF BD EF BF BD 67 4E 77 4A EF BF BD EF BF BD EF BF BD 03 C9 98 30 14 EF BF BD EF BF BD EF BF BD 03 EF BF BD 6B DE A8 04 7A 0B 1B 54 EF BF BD EF BF BD EF BF BD EF BF BD 31 30 06 EF BF BD EF BF BD EF BF BD 21 16 EF BF BD 7B EF BF BD 60 EF BF BD 59 EF BF BD EF BF BD 75 2B 20 25 67 35 70 EF BF BD 52 EF BF BD 4C 34 0F EF BF BD 22 EF BF BD EF BF BD EF BF BD 5D EF BF BD 61 6E 1F EF BF BD 09 EF BF BD EF BF BD 0B 44 66 74 EF BF BD EF BF BD 7A EF BF BD EF BF BD EF BF BD 34 EF BF BD EF BF BD 34 24 3C EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 22 62 EF BF BD 59 EF BF BD 26 EF BF BD 2F 23 EF BF BD 52 46 30 EF BF BD 23 EF BF BD 77 EF BF BD 56 EF BF BD EF BF BD EF BF BD 31 EF BF BD 05 32 3F EF BF BD 2F EF BF BD EF BF BD EF BF BD EF BF BD 47 EF BF BD EF BF BD EF BF BD 18 EF BF BD EF BF BD 6A 17 01 18 22 EF BF BD EF BF BD EF BF BD EF BF BD 2A EF BF BD EF BF BD 65 76 41 10 EF BF BD 43 3A 47 31 2A EF BF BD EF BF BD EF BF BD 21 EF BF BD 79 EF BF BD 5C EF BF BD EF BF BD 3C EF BF BD CF 86 6F 10 55 EF BF BD 7E EF BF BD 09 50 4B 07 08 EF BF BD 48 EF BF BD EF BF BD 18 01 00 00 33 03 00 00 50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD EF BF BD EB 8B AE 00 00 00 27 01 00 00 0B 00 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 EF BF BD EF BF BD EF BF BD 0E EF BF BD 30 0C 06 EF BF BD 57 59 7A EF BF BD EF BF BD 07 63 0C EF BF BD EF BF BD 31 EF BF BD 6A EF BF BD 01 EF BF BD 56 06 01 EF BF BD 65 EF BF BD 0A 6F EF BF BD 62 3C 78 6C EF BF BD EF BF BD EF BF BD D3 B2 5E EF BF BD 3D D1 87 EF BF BD EF BF BD EF BF BD 22 CB 81 EF BF BD 55 EF BF BD 07 6B 04 EF BF BD EF BF BD EF BF BD EF BF BD 08 2C 44 69 EF BF BD EF BF BD C8 A2 EF BF BD 15 03 EF BF BD 55 79 EF BF BD 49 EF BF BD 74 12 EF BF BD EF BF BD 05 EF BF BD 0C 1B 04 EF BF BD 31 EF BF BD 13 EF BF BD 41 EF BF BD 38 CB 90 EF BF BD 43 EF BF BD 36 1D EF BF BD 59 EF BF BD 34 7A C3 9D 54 EF BF BD 34 EF BF BD EF BF BD 79 7E EF BF BD EF BF BD D3 80 EF BF BD EF BF BD 1A 2D EF BF BD 37 EF BF BD 00 D6 AE 0E EF BF BD EF BF BD EF BF BD EF BF BD 06 EF BF BD 67 52 EF BF BD 19 6D EF BF BD 51 EF BF BD 48 EF BF BD EF BF BD 06 EF BF BD EF BF BD 65 EF BF BD 2F EF BF BD EF BF BD 68 EF BF BD 12 0A EF BF BD 2A EF BF BD EF BF BD EF BF BD EF BF BD 0D 50 4B 07 08 EF BF BD EF BF BD EB 8B AE 00 00 00 27 01 00 00 50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 2D 27 53 EF BF BD 00 00 00 4D 01 00 00 0F 00 00 00 78 6C 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C EF BF BD EF BF BD EF BF BD 0E EF BF BD 30 0C 44 77 24 EF BF BD 21 EF BF BD 07 10 60 60 EF BF BD 52 16 60 40 42 EF BF BD EF BF BD 3D EF BF BD 2E EF BF BD 48 EF BF BD EF BF BD 49 55 EF BF BD 7B EF BF BD 56 45 EF BF BD EF BF BD DD 9D EF BF BD 4F 27 3B EF BF BD EF BF BD 0D EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 58 50 C9 9B EF BF BD 42 21 44 EF BF BD 0D 38 15 17 18 EF BF BD EF BF BD 5B EF BF BD EF BF BD 54 CA 96 EF BF BD 02 EF BF BD EF BF BD 68 D8 A3 6E 1D EF BF BD 24 EF BF BD EF BF BD EF BF BD 46 10 58 EF BF BD 0C EF BF BD D8 98 10 EF BF BD 48 EF BF BD EF BF BD 15 03 EF BF BD EF BF BD 62 03 EF BF BD EF BF BD 1D 51 4E 19 CF B7 EF BF BD 19 63 EF BF BD 5F 76 35 EF BF BD EF BF BD EF BF BD EF BF BD 60 EF BF BD DB 87 4C EF BF BD 25 EF BF BD DB 92 03 EF BF BD EF BF BD 31 38 E6 95 83 EF BF BD 1F 5C EF BF BD EF BF BD 02 EF BF BD 6C 48 EF BF BD 55 EF BF BD 57 EF BF BD 51 61 EF BF BD EF BF BD 63 EF BF BD EF BF BD EF BF BD EF BF BD 62 48 EF BF BD EF BF BD EF BF BD 10 EF BF BD 5B 6B 77 59 EF BF BD EF BF BD 09 EF BF BD EF BF BD D9 B7 EF BF BD EF BF BD 36 6D EF BF BD 50 4B 07 08 EF BF BD 2D 27 53 EF BF BD 00 00 00 4D 01 00 00 50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 62 EF BF BD EF BF BD EF BF BD 00 00 00 34 02 00 00 1A 00 00 00 78 6C 2F 5F 72 65 6C 73 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 2E 72 65 6C 73 EF BF BD EF BF BD EF BF BD 6A EF BF BD 30 0C EF BF BD 5F EF BF BD EF BF BD 38 EF BF BD 60 EF BF BD 51 EF BF BD EF BF BD 31 EF BF BD 7F 1E 40 EF BF BD 4A 1C EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 6B 36 56 52 28 63 EF BF BD EF BF BD EF BF BD 64 EF BF BD EF BF BD 3E EF BF BD EF BF BD EF BF BD 6B 1C D4 89 32 EF BF BD 31 18 68 EF BF BD 1A 14 05 1B 5D 1F 3A 03 EF BF BD EF BF BD EF BF BD EF BF BD 2B 28 16 0C 0E EF BF BD 18 EF BF BD EF BF BD 44 0C EF BF BD EF BF BD 72 4B 03 4A 59 61 EF BF BD 27 56 EF BF BD 11 D8 80 17 49 6F 5A EF BF BD EF BF BD 34 22 57 31 51 28 2F 6D EF BF BD 23 4A 69 73 EF BF BD 13 EF BF BD 23 76 EF BF BD 17 75 EF BF BD EF BF BD EF BF BD 01 EF BF BD 4C EF BF BD 71 06 EF BF BD EF BF BD 35 EF BF BD EF BF BD 53 EF BF BD EF BF BD EF BF BD 63 EF BF BD EF BF BD EF BF BD DE A3 EF BF BD 1C 29 C8 9D 08 7D EF BF BD EF BF BD C8 9E 48 0A 14 73 47 62 EF BF BD 3A 62 EF BF BD 5D EF BF BD EF BF BD 50 41 DF 97 59 3C 52 EF BF BD 65 1A EF BF BD 5F 5E 4D 7E EF BF BD EF BF BD EF BF BD 1F 1A EF BF BD 31 EF BF BD EF BF BD 49 2E EF BF BD EF BF BD 5B EF BF BD C7 BF 32 EF BF BD EF BF BD DA AB 0B 50 4B 07 08 EF BF BD 62 EF BF BD EF BF BD EF BF BD 00 00 00 34 02 00 00 50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B 2A 7B EF BF BD EF BF BD 61 01 00 00 EF BF BD 03 00 00 18 00 00 00 78 6C 2F 77 6F 72 6B 73 68 65 65 74 73 2F 73 68 65 65 74 31 2E 78 6D 6C EF BF BD EF BF BD EF BF BD 4E EF BF BD 30 18 EF BF BD 6F EF BF BD EF BF BD 2B 7F EF BF BD EF BF BD 02 2C EF BF BD 64 EF BF BD 33 EF BF BD EF BF BD 15 3E 46 33 EF BF BD EF BF BD EF BF BD EF BF BD E6 81 97 EF BF BD 2D 58 EF BF BD 05 EF BF BD EF BF BD C6 B3 16 EF BF BD EF BF BD EF BF BD C3 97 EF BF BD EF BF BD EF BF BD 19 6F DF 9B 1A 5D 40 48 EF BF BD EF BF BD 04 EF BF BD 0B 0F 23 68 73 5E EF BF BD EF BF BD EF BF BD EF BF BD 2A EF BF BD EF BF BD 78 EF BF BD EF BF BD 3D 17 27 59 01 28 EF BF BD EF BF BD 56 6E 44 EF BF BD 2B EF BF BD EF BF BD 0D 21 32 EF BF BD EF BF BD EF BF BD 72 EF BF BD 3B 68 EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 2A EF BF BD 15 47 EF BF BD CB 92 EF BF BD EF BF BD EF BF BD EF BF BD 40 EF BF BD 48 EF BF BD 79 2B 22 EF BF BD EF BF BD 4A 57 C9 8A 75 12 5F EF BF BD EF BF BD EF BF BD 25 3B 01 EF BF BD 30 0A 4D 7D EF BF BD 6A 28 6B 71 1A 17 4C EF BF BD 0F EF BF BD 48 40 EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 22 EF BF BD 48 1A 1B EF BF BD EF BF BD 41 2F 27 6B 34 7C EF BF BD 1B EF BF BD 61 EF BF BD 54 24 EF BF BD 33 2C 71 EF BF BD EF BF BD 29 7F 16 EF BF BD EF BF BD EF BF BD EF BF BD 6B EF BF BD EF BF BD EF BF BD 47 60 EF BF BD 4A EF BF BD 21 2D 7F EF BF BD 33 EF BF BD 68 1A 0B EF BF BD 23 3D 12 5F EF BF BD EF BF BD EF BF BD 62 EF BF BD 63 24 4D EF BF BD C6 A5 7E 7A 49 EF BF BD EF BF BD 5C 74 4F 7E 23 EF BF BD 2E EF BF BD CF 89 07 EF BF BD 08 EF BF BD 44 EF BF BD 12 EF BF BD 48 10 EF BF BD 34 EF BF BD 05 EF BF BD 58 70 3B 62 0A 3D CF B6 0A EF BF BD EF BF BD C8 B2 72 EF BF BD EF BF BD 65 35 EF BF BD 58 4E 2B 66 4A EF BF BD 14 CE 95 EF BF BD 31 EF BF BD 43 EF BF BD 70 65 29 EF BF BD EF BF BD EF BF BD 64 55 EF BF BD EF BF BD 14 EF BF BD 4E EF BF BD EF BF BD EF BF BD 35 EF BF BD 7D EF BF BD 34 EF BF BD 5B 4E 2E EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 44 26 D7 AB EF BF BD 57 1F C4 81 73 05 EF BF BD EF BF BD EF BF BD EF BF BD 77 4C EF BF BD 01 50 4B 07 08 2A 7B EF BF BD EF BF BD 61 01 00 00 EF BF BD 03 00 00 50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD EF BF BD 2B 3D 46 01 00 00 69 03 00 00 0D 00 00 00 78 6C 2F 73 74 79 6C 65 73 2E 78 6D 6C EF BF BD 53 4D 6F EF BF BD 30 0C EF BF BD 4F EF BF BD 7F EF BF BD EF BF BD 01 4B 5B 69 3B 4C EF BF BD EF BF BD 24 EF BF BD 5D 7A EF BF BD 0E EF BF BD EF BF BD EF BF BD 40 24 EF BF BD 43 EF BF BD EF BF BD 60 EF BF BD 7E 40 EF BF BD 26 EF BF BD EF BF BD D4 9B EF BF BD EF BF BD EF BF BD 4D EF BF BD 71 02 7E EF BF BD 39 47 32 2A D0 BE 2A 7A 44 EF BF BD 4A EF BF BD 3F EF BF BD 5C 31 EF BF BD 64 2C EF BF BD 33 23 EF BF BD 53 0C EF BF BD EF BF BD 75 EF BF BD 5B EF BF BD 59 EF BF BD 47 0A EF BF BD 61 EF BF BD 7B EF BF BD EF BF BD 49 5D EF BF BD 3D 3E 10 52 EF BF BD 41 EF BF BD 0A 3D 39 EF BF BD 41 63 55 EF BF BD 0A 42 03 21 EF BF BD 4E EF BF BD 3E 54 47 38 EF BF BD 73 EF BF BD 7F EF BF BD 37 EF BF BD EF BF BD EF BF BD 5F DE AD EF BF BD 66 EF BF BD 07 E2 9D 81 6C EF BF BD 4C 6C 49 EF BF BD 0A 21 EF BF BD EF BF BD 4E 02 5C EF BF BD 0E EF BF BD 6E EF BF BD EF BF BD EF BF BD 65 EF BF BD EF BF BD EF BF BD 7A 06 49 EF BF BD 3F 27 CB AB 42 1B EF BF BD 6F 3C D2 B3 7B 25 3A C7 A6 EF BF BD EF BF BD 79 53 25 EF BF BD EF BF BD EF BF BD C6 B8 EF BF BD EF BF BD EF BF BD EF BF BD 04 22 59 01 17 EF BF BD 4F EF BF BD C9 AE EF BF BD 01 EF BF BD EF BF BD 3C 6D 0C EF BF BD 51 39 EF BF BD 4A EF BF BD 19 EF BF BD 20 EF BF BD 29 33 EF BF BD 24 EF BF BD EF BF BD 33 07 38 2D EF BF BD EF BF BD 25 36 EF BF BD 1B 05 09 EF BF BD EF BF BD 68 EF BF BD 2D 2F EF BF BD EF BF BD 61 5C 38 EF BF BD 05 EF BF BD EF BF BD 5D 6A EF BF BD 5A EF BF BD EF BF BD EF BF BD 6A EF BF BD EF BF BD EF BF BD EF BF BD 5B EF BF BD 73 EF BF BD EF BF BD EF BF BD 36 41 EF BF BD EF BF BD 62 EF BF BD EF BF BD EF BF BD 75 EF BF BD 63 EF BF BD EF BF BD CA 91 EF BF BD C6 AA E2 B8 B8 41 EF BF BD EF BF BD 0C 12 50 EF BF BD EF BF BD 3E 2D 5A EF BF BD EF BF BD EF BF BD 7B EF BF BD 25 4D 3F EF BF BD EF BF BD 2F 50 4B 07 08 EF BF BD EF BF BD 2B 3D 46 01 00 00 69 03 00 00 50 4B 03 04 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 7E 6F 36 EF BF BD 00 00 00 58 01 00 00 14 00 00 00 78 6C 2F 73 68 61 72 65 64 53 74 72 69 6E 67 73 2E 78 6D 6C 65 EF BF BD 41 4A 04 31 10 45 EF BF BD 12 0A 17 EF BF BD 70 D2 BA 10 EF BF BD 24 EF BF BD 50 46 14 74 EF BF BD 1E EF BF BD E8 AE 99 0E 74 2A 6D EF BF BD 5A EF BF BD EF BF BD 1B 11 11 32 EF BF BD EF BF BD 3E EF BF BD 17 EF BF BD EF BF BD 7E EF BF BD EF BF BD 7C 52 EF BF BD EF BF BD EF BF BD EF BF BD C5 A6 03 43 EF BF BD EF BF BD 21 EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD 1A EF BF BD 28 EF BF BD 53 66 F2 B0 92 80 EF BF BD 06 27 EF BF BD EF BF BD 56 59 3C EF BF BD EF BF BD EF BF BD D2 8F EF BF BD 50 36 79 26 EF BF BD EF BF BD 3E EF BF BD EF BF BD 5A EF BF BD 1C EF BF BD CC 85 70 EF BF BD EF BF BD 48 EF BF BD 64 2F EF BF BD EF BF BD EF BF BD 26 EF BF BD 0C EF BF BD EF BF BD 0B EF BF BD EF BF BD 1B 30 0B C7 8F EF BF BD EF BF BD EF BF BD EF BF BD 1E EF BF BD EF BF BD 69 78 EF BF BD 77 56 EF BF BD EF BF BD 3F EF BF BD 6B 5E 30 51 EF BF BD 1E EF BF BD 07 2A EF BF BD 7D EF BF BD 09 EF BF BD 6A 4E 23 EF BF BD EF BF BD EF BF BD 36 7C EF BF BD DC AA EF BF BD D9 82 23 EF BF BD EF BF BD 26 31 EF BF BD EF BF BD EF BF BD EF BF BD 0B 5B 5F 13 EF BF BD 01 50 4B 07 08 EF BF BD 7E 6F 36 EF BF BD 00 00 00 58 01 00 00 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 48 EF BF BD EF BF BD 18 01 00 00 33 03 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD EF BF BD EB 8B AE 00 00 00 27 01 00 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 59 01 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 2D 27 53 EF BF BD 00 00 00 4D 01 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 40 02 00 00 78 6C 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 62 EF BF BD EF BF BD EF BF BD 00 00 00 34 02 00 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 03 00 00 78 6C 2F 5F 72 65 6C 73 2F 77 6F 72 6B 62 6F 6F 6B 2E 78 6D 6C 2E 72 65 6C 73 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B 2A 7B EF BF BD EF BF BD 61 01 00 00 EF BF BD 03 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 5C 04 00 00 78 6C 2F 77 6F 72 6B 73 68 65 65 74 73 2F 73 68 65 65 74 31 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD EF BF BD 2B 3D 46 01 00 00 69 03 00 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 03 06 00 00 78 6C 2F 73 74 79 6C 65 73 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 08 00 08 00 EF BF BD 53 66 4B EF BF BD 7E 6F 36 EF BF BD 00 00 00 58 01 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 EF BF BD 07 00 00 78 6C 2F 73 68 61 72 65 64 53 74 72 69 6E 67 73 2E 78 6D 6C 50 4B 05 06 00 00 00 00 07 00 07 00 EF BF BD 01 00 00 EF BF BD 08 00 00 00 00


person Marcus    schedule 06.11.2017    source источник
comment
Вместо скриншота Моджибаке лучше бы выложили часть шестнадцатеричного дампа   -  person Christoffer Hammarström    schedule 06.11.2017
comment
Конечно, не уверен, как это поможет, но во что бы то ни стало... :) Смысл скриншотов был просто в том, чтобы продемонстрировать, что данные разные.   -  person Marcus    schedule 06.11.2017
comment
Боже... я просто маленький кусочек двух шестнадцатеричных дампов рядом в моноширинном шрифте, пожалуйста.   -  person Christoffer Hammarström    schedule 06.11.2017
comment
На самом деле неважно, во втором шестнадцатеричном дампе я вижу много EF BF BD, который представляет собой последовательность байтов UTF-8 для U+FFFD, которая является кодовой точкой Unicode REPLACEMENT CHARACTER, которая используется в качестве замены, когда последовательность байтов не может быть декодирована в кодовая точка. Похоже, у вас проблема с кодировкой. Вы где-то декодируете байты в строку, а затем снова кодируете эту строку в байты, используя UTF-8. Не декодируйте строку в любом месте.   -  person Christoffer Hammarström    schedule 06.11.2017
comment
Вы правы в том, что кодировка отличается, и я вижу это и в Notepad ++ - я думаю, мой вопрос в том, почему? Предоставляется весь код от сервера к клиенту, и я не понимаю, почему это происходит.   -  person Marcus    schedule 06.11.2017
comment
Я думаю, вы извлекаете http-ответ как строку, а не как большой двоичный объект, см. stackoverflow.com/questions/34149741/   -  person Christoffer Hammarström    schedule 06.11.2017
comment
Да, я не понял, что нужно указывать responseType. Простое добавление responseType: ResponseContentType.Blob изменило ситуацию. Спасибо! Отправьте ответ, чтобы я мог принять.   -  person Marcus    schedule 06.11.2017
comment
У меня такая же проблема, но я не знаю, как ее исправить в VueJs. Можете вы помочь мне?   -  person Yuri Morales    schedule 04.09.2018


Ответы (3)


Согласно моему комментарию, я думаю, вы извлекаете ответ http как строку, а не как большой двоичный объект. :)

См. https://stackoverflow.com/questions/34149741/how-to-receive-blob-responses-using-angular-2s-angular-http-module

person Christoffer Hammarström    schedule 06.11.2017

Я также использую EPPlus для возврата рабочей книги InMemory excel в виде массива байтов, и она повреждается только тогда, когда я запускаю контейнер докера с хоста Linux, а не с хоста Windows.

using (var package = ExcelUtil.createExcelPackage(hits))
    {
        reportBytes = package.GetAsByteArray();
    }
return File(reportBytes, XlsxContentType, fileDownloadName);

Что в Beyondcompare я вижу около 14 мест, где он всегда заменяет «C0 A4» на «4F A5», но я не знаю актуальности этого. Большинство замен находятся ближе к концу файла и выглядят так:

шестнадцатеричное сравнение

Я не уверен, в чем причина, но когда я выясню это, я опубликую ответ. Я бы сделал это комментарием, но картинка показалась уместной, и я уверен, что мы скоро что-нибудь придумаем...

person Evan Morrison    schedule 25.04.2019
comment
Мне любопытно, связано ли это с компонентами System.Drawing EPPlus. Я знаю, что это другая библиотека для Windows и Linux, и это не работало в Linux, пока я не добавил в файл докеров: RUN apt-get update && apt-get install -y libgdiplus libc6-dev - person Evan Morrison; 26.04.2019
comment
В качестве примечания для тех, кто ищет продолжение - это было потому, что Windows блокировала файл при загрузке. После щелчка правой кнопкой мыши › свойства › разблокировать файл ничем не отличался от файла с хоста Windows. Надеюсь, это поможет. - person Evan Morrison; 22.12.2020

Мне пришлось украсить функцию веб-API атрибутом [AlloyAnonymous], чтобы получить Angular http get RequestOptionsArgs, responseType: ResponseContentType.Blob принят, и функция веб-API, наконец, вызвана правильно. Я думаю, должно быть лучшее обходное решение.

[HttpGet]
[AllowAnonymous]        
public IActionResult GetSearchedReportsFile(string fileGuid)
  {            
  byte[] fileBytes = System.IO.File.ReadAllBytes(@"C:\temp\epplus\" + fileGuid + ".xlsx");
  return File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "myfile.xlsx");            
  }
person Mika Aaltonen    schedule 05.03.2019