Я работаю над веб-страницей, где пользователь может загрузить файл, но только после принятия лицензии, поэтому я выполнил процесс с помощью PHP, чтобы проверить, проверил ли пользователь лицензию и не раскрывать URL файла, код работает нормально как и хотел (скачивает), вот код:
$fileName = $_GET['AppName'] . " - Setup.exe";
$path = 'JO9E/' . $fileName;
$size = filesize($path);
header('Content-Type: application/octet-stream');
header('Content-Length: ' . $size);
header('Content-Disposition: attachment; filename=' . $fileName);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$file = @ fopen($path, 'rb');
if ($file) {
$_SESSION["TEMP"] = "nO";
fpassthru($file);
echo "<script type='text/javascript'>window.close();</script>";
}
Но теперь моя проблема:
У меня на компьютере установлен IDM (Internet Download Manager), и когда я хочу загрузить файл ... IDM показывает окно загрузки, чтобы загрузить файл, показывая путь к файлу PHP, и также он не будет загружать файл, когда я нажимаю кнопку запуска загрузки, он теряет связь.
Теперь у меня нет проблем с обнаружением пути к файлу PHP, поскольку он ничего не будет загружать, если пользователь не примет лицензию и не перешел с правильной веб-страницы, но я хочу, по крайней мере, пользователь, чтобы иметь возможность загрузить файл, даже если у него был IDM установлен, потому что при этой настройке, если у пользователя был установлен IDM, он должен включить интеграцию в IDM, чтобы правильно загрузить файл через браузер.
Надеюсь, кто-нибудь сможет мне с этим помочь.
@smith IDM - это популярный ярлык для популярного приложения 'Internet Download Manager' для более быстрой загрузки файлов.
у вас действительно не должно быть этого эха после fpassthru()
Вы не должны напрямую связывать параметр $_GET с таким путем к файлу. Вы предоставили Интернету простой способ получить любой читаемый файл на вашем сервере.
@Sammitch Это хороший момент, но не волнуйтесь, это не полный файл, я настроил его, прежде чем размещать здесь;) ... Я подумал об этом, но спасибо, что указали на это в любом случае.






вы должны поместить небольшую инструкцию рядом со своей ссылкой для скачивания с
right click and press Save As
Расширение браузера IDM перехватывает все файлы с расширениями, выбранными в параметрах IDM, поэтому оно находится на уровне баузера.
мы должны знать, что такое IDM?