Проблемы с загрузкой подписанных файлов PDF C#
У меня есть подписанный PDF с подписью Adobe. Моя проблема начинается, когда я хочу загрузить этот документ.
Через веб-метод я получаю байты подписанного файла. Пока здесь нет проблем.
Если я пытаюсь сохранить файл на моем сервере, то при открытии файла все в порядке. Но если я пытаюсь скачать его, когда открываю, подпись неверна.
Это ошибка в Adobe Reader:
"Объем подписанных данных определяется диапазоном непредвиденных байтов. Детали: недопустимый диапазон байтов подписи"
Вот как я загружаю файл:
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename= Factura.pdf");
HttpContext.Current.Response.AddHeader("Content-Length", newStream.Length.ToString());
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.BufferOutput = true;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.OutputStream.Write(newStream.GetBuffer(), 0, newStream.GetBuffer().Length);
HttpContext.Current.Response.OutputStream.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
Кто-нибудь может мне помочь с этой проблемой?
1 ответ
Вы отправляете больше байтов, чем указано в заголовке. Делать newStream.ToArray()
и использовать только байтовый массив. Другая вещь, чтобы проверить, если у вас действительно есть все байты в newStream
, сохранить его в файл для проверки (из ToArray()
,