ZIP-файл PDF в потоке памяти. Показан неподдерживаемый или поврежденный файл. Мой код прикреплен.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 ZIP-файл PDF в потоке памяти. Показан неподдерживаемый или поврежденный файл. Мой код прикреплен.

Сообщение Гость »

У меня есть файл 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 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», но возникла та же ошибка.

Подробнее здесь: https://stackoverflow.com/questions/558 ... -code-atta
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»