Создать ссылку файла загрузки в PHP

Возможный дубликат:
открыть диалоговое окно загрузки с php

У меня есть ссылка на моей странице, <a href='test.pdf'>(Test.pdf)</a> . Когда я нажимаю на эту ссылку, откроется диалоговое окно загрузки, чтобы загрузить этот файл. Может ли кто-нибудь помочь мне в реализации этого в PHP?

благодаря

 $filename = 'Test.pdf'; // of course find the exact filename.... header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: private', false); // required for certain browsers header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="'. basename($filename) . '";'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($filename)); readfile($filename); exit; 

Назовите вышеуказанный файл как download.php

HTML:

 <a href="download.php">Test.pdf</a> 

Это должно сделать это.

 <a href="test.pdf">test.pdf</a> 

В случае файла PDF большинство браузеров будут искать помощника (acrobat), чтобы загрузить его в браузере по умолчанию. Вы пытаетесь обойти это поведение по умолчанию, это мое предположение.

Самый простой способ сделать это (при условии, что вы находитесь на * nix box с apache) – сделать файл .htaccess в каталоге, в котором вы хотите получить этот результат, и добавить строку:

Приложение AddType / октет-поток .pdf

Это приведет к тому, что файл с расширением .pdf будет загружен по умолчанию. Вы даже можете иметь некоторые .pdf-файлы на загрузке страницы в браузере, а другие загружать с помощью директивы FilesMatch ( http://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess.html ) ,

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