У меня есть строка Base64, представляющая файл PDF, который необходимо преобразовать в файл PDF, и открыть с помощью программы чтения PDF-файлов или браузера по умолчанию в C #.
Я написал только часть строки Base64, посколькуздесь слишком длинная строка для вставки.
public void DownloadPDF()
{
string pdflocation = "E:\\";
string fileName = "softcore.pdf";
// This is only part of Base64 string
var base64String = "JVBERi0xLjQKJdP0zOEKMSAwIue704O58dOXPgst+hmQ+laj/";
int mod4 = base64String.Length % 4;
if (mod4 > 0)
{
base64String += new string('=', 4 - mod4);
}
byte[] data = Convert.FromBase64String(base64String);
if (Directory.Exists(pdflocation))
{
pdflocation = pdflocation + fileName;
using (MemoryStream Writer = new System.IO.MemoryStream())
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.AddHeader("content-length", data.Length.ToString());
Writer.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
//Writer.Write(data, 0, data.Length);
}
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что она отображается как генерирующая pdf, но в конце она говорит об ошибке сети.
Декодированная строка извходная закодированная строка Base64: