2017-02-01 13 views
1

Прежде чем что-нибудь сказать. Я искал решение по этому вопросу. Я пытаюсь понять это сейчас.PHP ob_flush flush() не работает

В настоящее время я пытаюсь показать ход загрузки ftp по echo'ing каждый раз, когда файл загружается.

Это часть моего кода:

<?php 

header('Content-type: text/html; charset=utf-8'); 
header('Cache-Control: no-cache, must-revalidate'); 
header('X-Accel-Buffering: no'); 

// ftp connection stuff goes here 

$string_length = 4096; 

for ($i=0; $i < $filesLength; $i++) { 

    if (ftp_get($ftp_conn, './downloads/'.$files[$i]['local'], $files[$i]['server'], FTP_ASCII)) { 
     echo 'File: '.$files[$i]['local'].' saved.<br>'; 

     // $string = str_repeat('.', $string_length); 
     // echo '<div style="display:none;">'.$string . '</div>'; 

     ob_flush(); 
     flush(); 
    } else { 
     echo "Error"; 
    } 

} 

Theres 2 прокомментировал линию там, что если я раскомментировать все это работает.

Что мне делать, чтобы сделать эту работу?

+0

http://php.net/manual/en/function.ob-flush.php состояния 'flush(); ob_flush(); 'и не наоборот. –

+0

не работает. Еще раз. если я добавлю 2 раскоментированные строки, он отлично работает. Но добавляет кучу .... в DOM. – xnny

+0

Можете ли вы попробовать с другим браузером или ПК? –

ответ

0

Я не нашел правильного решения, я думаю.

В итоге я использовал строку 4kb для запуска флеша.

Это работает, но не так, как предполагалось.