Пользователь на моем сайте может скачивать файлы. Иногда эти файлы довольно большие, и я бы хотел, чтобы пользователи просматривали панель выполнения загрузки в своих браузерах.PHP файл загрузки: показать прогресс в браузере
Я использую следующий код, чтобы дать пользователю файл:
header('Content-Type: text/xml');
header('Content-Disposition: attachment; filename='.$fileName);
header('Pragma: no-cache');
header('Content-Transfer-Encoding: binary');
header('Pragma: public');
header('Content-Length: '.filesize($fullFileName));
header("Content-Description: File Transfer");
$fileHandler = fopen($fullFileName, 'r');
while(!feof($fileHandler)){
echo fread($fileHandler, 2048);
}
fclose($fileHandler);
При запуске этого скрипта в браузере (FireFox) замерзает в течение некоторого времени, я могу видеть нагрузки цветового круга и только после сохранения/открытия диалогового файла появляется. Когда я нажимаю кнопку «Сохранить», файл почти сразу загружается на мой компьютер (в то время как файл довольно большой - 50 Мб).
Я хочу иметь систему загрузки, например, на этом site. Диалог для сохранения/opean появляется сразу, когда вы нажимаете на какие-либо ссылки. И после того, как вы сможете увидеть ход выполнения в своем браузере.
Есть ли специальные заголовки для отображения индикатора выполнения в браузере? Как мне изменить код?
Я использую Chrome, и я не вижу ничего особенного на этом сайте в отношении загрузки. Нет ничего, заголовок, который вы можете отправить, чтобы браузер отображал какой-то хороший индикатор выполнения загрузки. Я думаю, что проблема здесь в том, что ваш компьютер более или менее, ничто другое. –
@ N.B.I не понимаю, почему есть промежуток времени на моем сайте между моментом, когда вы нажимаете на ссылку и видите диалог «сохранить файл»? Я считаю, что что-то не так с кодом. Похоже, браузер ждет до момента, когда WHOLE-файл будет передан перед отображением диалогового окна. – Tamara
У меня были проблемы с firefox, когда я использовал его, и он загрузил весь файл, прежде чем уведомить меня о том, что он запущен. Я сомневаюсь, что это связано с заголовками (это не может быть - не имеет смысла), это либо на вашем компьютере (полный раздел hdd, либо просто медленный/старый hdd), либо механизм загрузки Firefox (опять же, не знаю, потому что Я не использую его так сильно). –