ASP.NET 4: HttpResponse открыт в новом браузере? - PullRequest
0 голосов
/ 28 января 2011

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

Вот код, который я использую:

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;        response.Clear();
response.AddHeader("Content-Type", "application/pdf");
response.AddHeader("Content-Disposition",
    "inline; filename=" + downloadName + "; size=" + downloadBytes.Length.ToString());
response.Flush();
response.BinaryWrite(downloadBytes);
response.Flush();
response.End();

Ответы [ 3 ]

1 голос
/ 28 января 2011

Вы не можете сделать это на стороне сервера, если не создали ссылку самостоятельно. Но если у вас есть, то, как сказал Роберт, укажите цель со ссылкой <a>.

Существует альтернатива на стороне сервера, которая заключается в установке типа контента на application/octect-stream, чтобы файл загружался и пользователь мог открыть его с помощью выбранного приложения вне браузера. Подробнее см. здесь .

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

Content-Disposition: attachment; filename=my.pdf;
0 голосов
/ 28 января 2011

Если вы действительно спрашиваете, как сделать так, чтобы диалоговое окно сохранения отображалось вместо загрузки PDF в ваш браузер, тогда вам нужно изменить заголовок.Вы устанавливаете Content-Disposition в значение «inline», измените его на «attachment»

http://support.microsoft.com/kb/260519

0 голосов
/ 28 января 2011

Предположительно, на вашем сайте есть ссылка, которая направляет пользователя на URL-адрес, на котором выполняется генерация PDF. В этой ссылке добавьте target="_blank" к тегу <a>.

...