我的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”具有相同的错误。
希望能为您提供帮助