Я пытаюсь получить страницу в формате PDF, которая отображается в контексте моего веб-сайта и отображается при назначении пользователем. У меня есть следующий код:
if (context.User.Identity.IsAuthenticated)
{
string SampleURL = context.Request.CurrentExecutionFilePath; //CurrentExecutionFilePath;
context.Response.Buffer = true;
context.Response.Clear();
using (FileStream fs = new FileStream(SampleURL,FileMode.Open)) //System.IO.File.OpenRead(path))
{
int length = (int)fs.Length;
byte[] buffer;
using (BinaryReader br = new BinaryReader(fs))
{
buffer = br.ReadBytes(length);
}
context.Response.Clear();
context.Response.Buffer = true;
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(buffer);
context.Response.End();
}
}
else
{
context.Response.Redirect(
"~/Error/invalid_access.aspx");
}
Единственная проблема - я не могу заставить PATH работать правильно.
Если бы мне нужно было позвонить в PDF напрямую через URL, это было бы http://www.abc.com/reports/sample.pdf, но я не могу вернуться в это место.
Я реализовал HTTPHandler, чтобы запретить кому-либо переходить по URL, но теперь мне нужно отправить файл обратно в браузер и записать его.
мысли, комментарии, предложения?
редактирование:
Это ПУТЬ, что я не могу получить относительный URL, чтобы указать на правильное местоположение. context.Request.CurrentExecutionFilePath выдает мне «/www.abc.com/sample_reports/sample.pdf», но я просто не могу поверить, что могу открыть / прочитать его