У меня есть API, который обслуживает документы, и есть проблема с некоторыми большими файлами PDF.
API возвращает строку, подобную этой data:application/pdf;base64,JVBERi0xLj...
Если вы копируете вставку в Chromeон отобразит PDF в браузере.
Однако большие файлы размером более 5 МБ просто аварийно завершают работу или отображают белую страницу.
Существует ли автономное решение для отображения PDF в браузере?В качестве альтернативы, что я должен изменить в API для рендеринга файла, если он слишком большой?
Если вы хотите увидеть какой-то код, контроллер API просто загружает файл с диска Amazon S3 и затем возвращаетмодель с именем файла и типом содержимого:
var response = await this.amazonUploadService.GetFile(filename);
var model = new DocumentViewModel
{
Data = response,
FileName = document.FileName,
ContentType = document.ContentType
};
return Ok(model.ToUrl());
Метод ToUrl
просто обеспечивает формат data:application/pdf;base64,JVBERi0xLj...
public string ToUrl()
{
return string.Format("data:{0};base64,{1}", ContentType, Convert.ToBase64String(Data));
}
Просто повторюсь, все это работает нормально и былоработает нормально в течение нескольких месяцев.Однако в последнее время стали появляться проблемы с слишком большими файлами, поэтому я подозреваю, что при воспроизведении есть ограничение браузера