Я пытаюсь отобразить изображение во время загрузки фотографий, поэтому пользователи знают, что мой веб-сайт что-то делает, а не просто сидит там. Я могу заставить его работать должным образом в автономном режиме, но не в сети, по некоторым причинам. Вот соответствующая часть моего кода:
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
echo '<div id="progress"><img src="https://web-answers.ru/wp-content/uploads/2019/03/ani_hiker.gif"/>
<p align="center">Photos uploading...<br/>slow and steady!</p></div>';
ob_end_flush();
flush();
ob_flush();
foreach ($_FILES['files']['name'] as $i => $name) {
//uploading files junk
}
echo '<script language="javascript">
alert("Photos added successfully!");
window.location.href="index.php?username='.$profile_link.'&select=photos";
</script>';
Как упоминалось ранее, работает отлично в автономном режиме, а не в сети. Когда я пытаюсь сделать это онлайн, фотографии загружаются, и div отображается после завершения загрузки, а не во время загрузки, и отображается под окном предупреждения. Изображение внутри div не появляется, пока вы не нажмете «ОК» в окне предупреждения, затем мигает в течение доли секунды, прежде чем div исчезает, и вы переходите на другую страницу (как и ожидалось).
Я чувствую, что это должно быть какая-то настройка с моим сервером, но я не знаю что. Я связался с моей принимающей компанией, и мы отключили буферизацию вывода для всего сайта, но это не решило проблему. С тех пор я возобновил буферизацию вывода, и он ведет себя так же, как всегда.
Кажется, что желаемое поведение является и всегда будет эксклюзивным для вашей локальной машины —
По состоянию на август 2012 года все браузеры, кажется, показывают все или ничего
подход к буферизации. Другими словами, пока работает PHP, нет
содержание может быть показано.В частности это означает, что следующие обходные пути перечислены далее
здесь неэффективны1) ob_flush (), flush () в любой комбинации с другим выводом
буферные функции;2) изменения в php.ini, связанные с настройкой output_buffer и / или
zlib.output_compression в 0 или Off;3) установка переменных Apache, таких как «no-gzip», либо через
apache_setenv () или через записи в .htaccess.Итак, пока браузеры не начнут снова показывать буферизованный контент, советы
перечисленные здесь являются спорными.
Других решений пока нет …