Я написал код для загрузки pdf-файла с сервера, но код не работает, и я даже не вижу ошибок. Это код, который я использую.
// place this code inside a php file and call it fe "download.php" $path = $_SERVER['DOCUMENT_ROOT']."/product_images/"; // change the path to fit your websites document structure fullPath = $path.$_REQUEST['download_file']; if ($fd = fopen ($fullPath, "r")) { $fsize = filesize($fullPath); $path_parts = pathinfo($fullPath); $ext = strtolower($path_parts["extension"]); switch ($ext) { case "pdf": header("Content-type: application/pdf"); // add here more headers for diff. extensions header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download break; default; header("Content-type: application/octet-stream"); header("Content-Disposition: filename=\"".$path_parts["basename"]."\""); } header("Content-length: $fsize"); header("Cache-control: private"); //use this to open files directly while(!feof($fd)) { $buffer = fread($fd, 2048); echo $buffer; } } fclose ($fd); exit; // example: place this kind of link into the document where the file download is offered: // <a href="download.php?download_file=some_file.pdf">Download here</a> ?>
Я извлекаю файл из базы данных, и это моя ссылка для загрузки, которую я использую на своем сайте
<div style="padding-left:320px; padding-top:5px;"><a href="<?php echo URL ?>download.php?download_file=<?php echo $prod_details['specification_pdf']?>"> <img src="<?php echo URL ?>images/download_pdf.png" /></a></div> </div>
Может ли кто-нибудь помочь мне в решении этой проблемы?
Как говорят, @lasar missing $ в строке 2 может быть проблемой. Я адаптирую (и проверяю) ваш код, чтобы быть более безопасным (см. Basename) и direct (см. Readfile):
<?php $path = $_SERVER['DOCUMENT_ROOT']."/product_images/"; // change the path to fit your websites document structure $fullPath = $path.basename($_REQUEST['download_file']); if (is_readable ($fullPath)) { $fsize = filesize($fullPath); $path_parts = pathinfo($fullPath); $ext = strtolower($path_parts["extension"]); switch ($ext) { case "pdf": header("Content-type: application/pdf"); // add here more headers for diff. extensions header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download break; default; header("Content-type: application/octet-stream"); header("Content-Disposition: filename=\"".$path_parts["basename"]."\""); } header("Content-length: $fsize"); header("Cache-control: private"); //use this to open files directly readfile($fullPath); exit; } else { die("Invalid request"); } // example: place this kind of link into the document where the file download is offered: // <a href="download.php?download_file=some_file.pdf">Download here</a>
ДОБАВИТЬ