Загрузка файла с помощью PHP через IDM (Internet Download Manager)

Я работаю над веб-страницей, где пользователь может загрузить файл, но только после принятия лицензии, поэтому я выполнил процесс с помощью 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, чтобы правильно загрузить файл через браузер.


Надеюсь, кто-нибудь сможет мне с этим помочь.

мы должны знать, что такое IDM?

user9487972 12.06.2018 00:45

@smith IDM - это популярный ярлык для популярного приложения 'Internet Download Manager' для более быстрой загрузки файлов.

Mousa Alfhaily 12.06.2018 00:49

у вас действительно не должно быть этого эха после fpassthru()

user9487972 12.06.2018 00:54

Вы не должны напрямую связывать параметр $_GET с таким путем к файлу. Вы предоставили Интернету простой способ получить любой читаемый файл на вашем сервере.

Sammitch 12.06.2018 00:59

@Sammitch Это хороший момент, но не волнуйтесь, это не полный файл, я настроил его, прежде чем размещать здесь;) ... Я подумал об этом, но спасибо, что указали на это в любом случае.

Mousa Alfhaily 12.06.2018 01:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
1 457
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы должны поместить небольшую инструкцию рядом со своей ссылкой для скачивания с right click and press Save As

Расширение браузера IDM перехватывает все файлы с расширениями, выбранными в параметрах IDM, поэтому оно находится на уровне баузера.

Другие вопросы по теме