@hello_world_666

Как узнать что код выполнен?

Здравствуйте. Есть форма в файле index.php
<form action="download.php" method="POST">
    <input type="hidden" name="uid" value="1">
    <button type="submit" name="MyDownload" class="btn btn-gradient-04 mr-1 mb-2">Скачать</button>
</form>


Сам файл download.php в нем из массива создается текстовый документ и скачивается вот код:

if ($result_txt) {
        header('Content-type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . $file);
        header('Content-Length: ' . strlen($result_txt));
        echo $result_txt;
    }


Проблема в том что скачивание происходит без открытия download.php, а просто идет загрузка на той же странице где и форма. Как узнать что загрузка файла download.php завершена и что текстовый файл скачался?
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
@BorisKorobkov Куратор тега PHP
Web developer
Правильный, но сложный способ:

1. HTML/JS из index.php устанавливает соединение с комет-сервером.

2. В download.php по окончании отдачи файла на скачивание записать информацию об этом в очередь RabbitMQ или ZeroMQ.

3. Комет-сервер подписывается на получение событий из очереди. При получение события из п.2 сообщает об этом в п.1

4. JS из п.1 по событию из п.3 отображает информацию.

Но зачем это нужно? Неужели юзер сам не видит, скачал он файл или нет? Браузер прекрасно об этом сообщает и без вас.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект