У меня есть раздел, где вы можете скачать связанные с работой PDF-файлы. Код работает на моем локальном хосте, но не на живом сайте. Есть идеи, что случилось?
<div id="resources">
<h1>Pilot Car Resources</h1>
<table style="width:400px" id="resourcesTable">
<tr>
<td>Kansas Handbook</td>
<td><a href="?file=kansasHandbook.pdf">Download PDF File</a></td>
</tr>
<tr>
<td>GA Amber Light Application</td>
<td><a href="?file=georgiaAmberLightApplication.pdf">Download PDF File</a></td>
</tr>
</table>
</div>
И PHP
<?php
if (isset($_GET["file"]) && !empty($_GET["file"])) {
$file = $_GET["file"];
$path = "/resources/";
$getFile = $path . $file;
if (file_exists($getFile)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename=' . urlencode(basename($getFile)));
// header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($getFile));
ob_clean();
flush();
readfile($getFile);
exit;
}
}
?>
Проблема 1
Вы начинаете с
http://jollyrogerpcs.com/index.php
Гиперссылки на вашей странице ведут на href = «file /? KansasHandbook.pdf»
Таким образом, вы делаете запрос файла
http://jollyrogerpcs.com/index.php?file=kansasHandbook.pdf
$ _GET [‘file’] игнорируется, а HTML из http://jollyrogerpcs.com/index.php доставляется в браузер Вот почему ваша страница обновляется, когда вы нажимаете ссылку pdf для скачивания.
Измените ваши ссылки на абсолютные ссылки, которые ссылаются на downloadPDF.php И файл get var.
НАПРИМЕР
http://jollyrogerpcs.com/scripts/php/downloadPDF.php?file=/kansasHandbook.pdf
Проблема 2
Трудно сказать, не увидев больше кода, но у вас, похоже, есть другая проблема, связанная с путем в downloadPDF.php. Когда вы выполняете запрос GET на этот URL-адрес, ваш $ getFile будет «/resources/kansasHandbook.pdf». Я считаю, что readfile () попытается найти PDF в http://jollyrogerpcs.com/scripts/php/resources/kansasHandbook.pdf.
Вы можете устранить эту проблему, поиграв с некоторой комбинацией абсолютного пути или магической константы __DIR__.
Других решений пока нет …