内存流中的PDF文件Zip显示不支持的文件或损坏的“我的代码”已附加

时间:2019-04-23 07:03:02

标签: c# asp.net-mvc pdf memorystream ziparchive

我的pdf文件位于可以成功打开的目录中。我实际上正在更改为byte []并将其压缩到内存流中并返回。

我压缩了所有文件,但是当我打开文件时出现错误

  

“文件无法打开,或者文件类型不受支持或文件损坏”

我正在将pdf文件更改为byte [],

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 / zip”具有相同的错误。

希望能为您提供帮助

0 个答案:

没有答案