Решения для встроенного расположения содержимого файла и введения динамического имени файла для сохранения действия - PullRequest
0 голосов
/ 29 августа 2011

По сути, я передаю PDF из памяти в браузер пользователя. Я хотел бы позволить системному пользователю иметь возможность нажимать кнопку сохранения в Adobe (в браузере) и иметь имя файла, предварительно заполненное динамическим значением (например, фамилия клиента).

До сих пор я немного читал об этой проблеме, кажется, что заголовок расположения контента, устанавливающий встроенное имя файла, не реализован правильно.

Я прочитал, что Adobe берет имя файла со страницы, которая генерирует PDF. То есть если имя страницы pdfviewer.aspx, то предварительно заполненное значение имени файла pdf - pdfviewer.pdf.

Я ищу работу вокруг. Моя оригинальная идея была для обработчика http, который будет генерировать и выдавать PDF, и иметь веб-конфигурацию как таковую:

 <add verb="*" path="*.ashx" type="Logic.PDFHandler" />

Таким образом, когда я динамически устанавливаю ссылку на «lastname.ashx», он должен запускать код в PDFHandler, в то время как URL будет выглядеть как «... \ lastname.ashx». Кажется, я могу заставить это работать в доказательстве концепции (заменив генерацию pdf простым repsonse.write ("hello world")), но мне просто интересно, есть ли лучшие способы обхода

Примечание. Подтверждение концепции работает только в IE, и я рад за это, так как это браузер, предназначенный для этого приложения для внутренней сети.

Ответы [ 2 ]

0 голосов
/ 29 августа 2011

Способ заставить браузер попросить вас сохранить PDF с заданным именем следующим образом:

// code runs on ASP.NET server
Response.Clear();
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}".
   fileName);
Response.ContentType = "application/pdf";
// stream PDF to response object
0 голосов
/ 29 августа 2011

ASP.NET маршрутизация позволит вам направить /GeneratePDF/{id}/{lastname}.pdf или что-то в ваш обработчик.

...