Content-Disposition: встроенный файл PDF в ASP.Net не работает - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь вернуть PDF-файл в браузер с заголовком Content-Dispostion:inline сразу после создания этого файла.У зрителей браузера есть проблема, чтобы открыть его.

Файл не поврежден.Если я вставлю в браузер, программа просмотра покажет файл правильно.Но я хочу создать файл и проверить права пользователей на файл за один запрос.

Вот мои настройки заголовков и ответов:

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("Content-Disposition", "inline");
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("filename", $"objednavka-{OrderId}.pdf");
HttpContext.Current.Response.BinaryWrite(File.ReadAllBytes(filePath));
HttpContext.Current.Response.End();

Firefox имеет ошибку в файле viewer.js, сообщение не определено, строка 1453.

Ответ в сети в отладчике Firefox: 200 OK .

Но сообщение в браузере потеряно (прервано).

1 Ответ

0 голосов
/ 18 мая 2018

помогают оба совета.Спасибо вам, ребята.Вот как выглядит правильный ответ:

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("Content-Disposition", $"inline; filename=\"objednavka-{ OrderId}.pdf\"");
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("content-length", File.ReadAllBytes(filePath).Length.ToString());
HttpContext.Current.Response.BinaryWrite(File.ReadAllBytes(filePath));
HttpContext.Current.Response.End();
...