PDF файлы открываются в браузере - PullRequest
0 голосов
/ 28 сентября 2010

Одно из приложений, которое я кодировал, давало возможность загружать каждый раз, когда я нажимаю на файл PDF. Теперь он открывается в браузере. Я не изменил код. Как сделать так, чтобы они могли загружаться, а не открывались в браузере?

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

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

download.php

<?php   
if (isset($_GET['file'])) { 
    $file = $_GET['file'];
        if (file_exists($file) && is_readable($file) && preg_match('/\.pdf$/',$file))  { 
            header('Content-type: application/pdf');  
            header("Content-Disposition: attachment; filename=\"$file\"");   
            readfile($file); 
        } 
    } else { 
    header("HTTP/1.0 404 Not Found"); 
    echo "<h1>Error 404: File Not Found: <br /><em>$file</em></h1>"; 
} 
?> 

, а затем вы бы ссылались наВаши PDF-файлы, такие как:

<a href="download.php?file=my_pdf_file.pdf">Download the cool PDF.</a>

Найдено на этом сообщении на форуме .

Надеюсь, это поможет.

0 голосов
/ 28 сентября 2010

Браузеры имеют плагины, которые могут открывать ваши PDF-файлы в самих браузерах, когда у вас нет этих плагинов, они загружают их.Один из способов добиться этого - отправляя файл для загрузки, не сообщать браузеру Mime-тип ответа, поэтому плагин не будет знать, что нужно открыть файл PDF, и все равно позволит вам его скачать.

попробуйте отправить следующий заголовок Content-Disposition: attachment;имя файла = genome.pdf;модификация-дата = "ср., 12 февраля 1997 г. 16:29:51 -0500";

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