откройте диалоговое окно сохранения как - PullRequest
1 голос
/ 11 мая 2011

У меня есть файл в формате .pdf для моего веб-сайта.

Если вы щелкните левой кнопкой мыши ссылку, откроется Adobe Reader и откройте файл.

Что якогда вы щелкаете левой кнопкой мыши, открывается диалоговое окно, в котором вас спрашивают, куда вы хотите

сохранить файл.

Я знаю, что вы можете сделать это, щелкнув правой кнопкой мыши и выбрав сохранить как, но есть ли способ, просто

одним простым щелчком левой кнопкой мыши, чтобы загрузить его?

Ответы [ 4 ]

2 голосов
/ 11 мая 2011

Я уверен, что для этого есть какая-то хитрость, но эта функция устанавливается вместе с браузером, когда на машине установлен Adobe Reader. Поддержание согласованности для всех пользователей - лучший подход. Не пытайтесь сделать левый щелчок, чтобы открыть диалоговое окно сохранения. Пользователи привыкли к такому поведению и будут знать, как сохранить PDF на свой локальный жесткий диск

Последовательность - вот ключ.

1 голос
/ 07 июля 2011

две части, вы должны преобразовать pdf в поток байтов и добавить заголовок размещения содержимого в ответ html.

сначала получить файл и поток в байтовый массив

    public byte[] GetDocument(string filePath)
    {
        return File.ReadAllBytes(filePath);
    }

Затем отправьте его - как самое первое в событии Page_Load - вам нужно будет передать путь к файлу через сеанс или строку запроса на новую страницу, так как вы не можете изменить тип содержимого на существующем страницу, которую вы уже просматривали в браузере.

                    Byte[] fileData = GetDocument(filePath);

                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.ContentType = "application/pdf";

                    // prompt to download
                    Response.AppendHeader("content-disposition", "attachment; filename=declarations.pdf");
                    Response.AppendHeader("content-length", fileData.Length.ToString());

                    Response.BinaryWrite(fileData);
                    Response.Flush();
                    Response.Close();
0 голосов
/ 11 мая 2011

Удалите местоположение в формате pdf из href-части вашей ссылки и вместо этого используйте метод onClick.

<a href="#" onClick="$:openSaveDialog">

<script>
function openSaveDialog() {
    //Write a JavaScript function to prompt the user with a Save Dialog Box.
}
</script>
0 голосов
/ 11 мая 2011

Добавьте pdf в папку zip и добавьте ссылку на папку zip

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