Как загрузить файл, а затем перенаправить на другую страницу в php?

Хорошо, у меня есть следующий файл php:

<?php header("Content-Type: application/octet-stream"); $file = $_GET["file"]; header("Content-Disposition: attachment; filename=" . urlencode($file)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file)); $file = "pdf/".$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 } if ($file="pdf/sampleFile.pdf") { ?> <html> <head> <title>Best Recipes Ever!</title> <link rel="stylesheet" href="style/style.css" /> </head> <body> <div id="header"> <h1>Best Recipes Ever!</h1> </div> <div id="page"> <h1>Thank You For Your Download!</h1> <p>I sincerely hope that you enjoy this free recipe! If satisfied, please feel free to return and purchase some of my recipes. Trust me, you won't regret it!</p> </div> </body> </html> <?php } fclose($fp); ?> 

Идея заключается в том, что если ее образец файла, он загружает файл, а затем перенаправляется на страницу с благодарностью. Однако, если это платная загрузка, этот файл загружает только файлы, но ничего не делает (потому что страница, из которой они идут, является списком загружаемых ссылок на скачивание, поэтому она должна оставаться на этой странице).

Однако эта страница выполняет загрузку файла, но не перенаправляет его. Что я делаю не так? И как я могу это исправить?

Лучше всего немного повернуть порядок страниц. Настройте страницу, которая является страницей «спасибо за скачивание этого образца», и настройте ее на обновление JavaScript, которое фактически приведет вас к загрузке. Поскольку это загрузка, а не новая страница, страница с благодарностью все еще будет там. Если у них нет javascript в браузере, поместите ссылку на фактический файл.

У вас может быть страница для каждого файла, но лучшим вариантом было бы передать имя файла в виде get var, т.е. ThankYou.php?file=sample.pdf

добавьте функцию header() для перенаправления вашей страницы после успешного скачивания

 header( "refresh:5;url=yourlocation.php" ); 

Ссылка ресурса ( здесь )

Используйте перенаправления html или javascript, потому что он работает, даже если заголовки уже отправлены. Просто повторите это, если загрузка представляет собой образец файла.

например

HTML

 echo "<meta http-equiv = 'Refresh' content = '2; url =./redirectpage.php'/>"; // change redirectpage.php to where you want to redirect. 

JavaScript

 echo '<script type="text/javascript"> window.location.href="./redirectpage.php"; </script>';