Давам линк към pdf файл на моята уебстраница за изтегляне, както по-долу
<a href="myfile.pdf">Download Brochure</a>
Проблемът е, че когато потребителят щракне върху тази връзка, тогава
Но искам винаги да се появява изскачащ прозорец за изтегляне на файла, независимо дали е инсталиран "Adobe Acrobat" или не.
Моля, кажете ми как мога да направя това?
Вместо да поставяте връзка към .PDF файла, направете нещо подобно на
<a href="pdf_server.php?file=pdffilename">Download my eBook</a>
което извежда персонализирано заглавие, отваря PDF файла (двоично безопасно) и отпечатва данните в браузъра на потребителя, след което той може да избере да запази PDF файла въпреки настройките на браузъра си. PDF_server.php трябва да изглежда по следния начин:
header("Content-Type: application/octet-stream");
$file = $_GET["file"] .".pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file));
flush(); // this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp))
{
echo fread($fp, 65536);
flush(); // this is essential for large downloads
}
fclose($fp);
PS: и очевидно извършете някои проверки за нормалност на променливата "file", за да предотвратите кражбата на вашите файлове, като например не приемайте файлови разширения, не допускайте наклонени черти, добавете .pdf към стойността
Това е ключът:
header("Content-Type: application/octet-stream");
При изпращане на PDF файл се изпраща Content-type application/x-pdf-document или application/pdf. Adobe Reader обикновено задава обслужващ модул за този MIME тип, така че браузърът ще предаде документа на Adobe Reader, когато се получи някой от PDF MIME типовете.
В приложение на Ruby on Rails (особено с помощта на нещо като драгоценния камък Prawn и плъгина Prawnto Rails) можете да постигнете това малко по-просто, отколкото с пълен скрипт (като предишния пример с PHP).
В контролера си:
def index
respond_to do |format|
format.html # Your HTML view
format.pdf { render :layout => false }
end
end
Частта render :layout => false указва на браузъра да отвори съобщението "Искате ли да изтеглите този файл? ", вместо да се опита да визуализира PDF файла. След това ще можете нормално да поставите връзка към файла: http://mysite.com/myawesomepdf.pdf