Zip in Memory Stream в файле PDF с отображением неподдерживаемого файла или поврежденного файла My Code - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть PDF-файл в каталоге, который может быть успешно открыт. Я на самом деле превращаюсь в byte [] и архивирую его в потоке памяти и возвращаю его.

Я получил все файлы в заархивированном виде, но при открытии файлов появляется ошибка

"Файл не может быть открыт, либо он не поддерживает тип, либо файл поврежден"

Я меняю pdf файл на байт [],

ArrayList PDFbyteList = new ArrayList();

byte[] bytes = System.IO.File.ReadAllBytes(@"C:\Windows\SysWOW64\config\systemprofile\Desktop\" + PdfFile);
PDFbyteList.Add(bytes);

Затем я изменяю его на zip, используя поток памяти,

public FileResult DownloadMultiplePDFFiles(List<FileResult> list)
        {
            int count = list.Count();
            byte[] file1;
            using (MemoryStream ms = new MemoryStream())
            {
                using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true))
                {
                    for (var i = 0; i < count; i++)
                    {
                        file1 = ObjectToByteArray(PDFbyteList[i]);
                        string name = list[i].FileDownloadName.Split('.')[0];
                        name = name + ".pdf";
                        var zipArchiveEntry = archive.CreateEntry(name, CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(file1, 0, file1.Length);
                        file1 = null;
                    }
                }
                //return File(ms.ToArray(), "application/zip", "Reports.zip");
                return File(ms.ToArray(), "application/octet-stream", "Reports.zip");
            }
        }

Список параметров с типом содержимого, именем файла и байтами. Я беру только имя файла отсюда и байтов из списка массивов. Тип содержимого в списке параметров - «application / octet-stream».

Я попытался с "application / octet-stream", а также с "application / zip" с такой же ошибкой.

Надежды на вашу помощь

...