Функция «Сохранить на диск» в Chrome PDF Viewer - можно ли контролировать сохраненное расширение файла? - PullRequest
4 голосов
/ 29 августа 2011

В приложении ASP.NET 2.0 с использованием Google Chrome 13 в Windows.

Мое приложение динамически генерирует отчет в формате PDF, когда пользователь просматривает определенную страницу aspx.По большей части все отлично работает в разных браузерах.

Однако в Chrome при использовании средства просмотра PDF Chrome может произойти следующее: - пользователь нажимает значок плавающей дискеты в нижней правой части средства просмотра, чтобы сохранить документ PDF.Файл сохраняется с именем страницы aspx.например, Report.aspx.

Если я открою этот загруженный файл aspx в Adobe Reader, он откроется как документ PDF.Но есть ли способ получить chrome по умолчанию имя файла для сохранения с расширением ".PDF"?

РЕДАКТИРОВАТЬ:

Код дляСтраница создания отчета выглядит примерно так:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();
    Response.ContentType = "application/pdf";
    byte[] data = GenerateReportHere(); // dynamically generate PDF report

    Response.AddHeader("Content-Length", data.Length.ToString());

    Response.BinaryWrite(data);
    Response.Flush();
    Response.End(); 
}

Обратите внимание, что я не хочу использовать заголовок "Content-Disposition", например:

    Response.AddHeader("Content-Disposition", "attachment; filename=Report.pdf");

, поскольку это приводит к тому, что браузерспросите пользователя, хотят ли они загрузить файл.В Chrome он не будет отображаться в программе просмотра PDF - он просто дает пользователю возможность после загрузки открыть файл, используя любую программу, связанную с расширением «.pdf».

Ответы [ 2 ]

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

Вы должны попробовать использовать заголовок content-disposition при потоковой передаче PDF-файла в браузер. Например,

HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=[ReportName].pdf");

// Code to stream pdf file content to the client
...

Подробнее о расположении контента см.

1 голос
/ 04 декабря 2012

Поскольку Chrome обновлен до HTML5, мы можем использовать новый блестящий атрибут download!

<a href="http://www.domain.com/painful.pdf" download="newname">Works</a>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...