У меня есть скрипт загрузки, который проверяет несколько вещей, а затем передает файл по 8kb.
Цикл, который выполняет передачу, выглядит следующим образом:
$file = @fopen($file_path,"rb");
if ($file) {
while(!feof($file)) {
set_time_limit(60);
print(fread($file, 1024*8));
flush();
if (connection_status()!=0) {
@fclose($file);
die();
}
}
@fclose($file);
}
Я написал небольшое приложение, которое имитировало очень медленную загрузку.Он ждет 2 минуты, прежде чем продолжить загрузку.Я ожидал, что срок действия сценария истечет, поскольку я установил ограничение в 60 секунд.Этого не происходит, и загрузка продолжается, пока она не закончится.Кажется, что время, проведенное в print / flush, не учитывается во время выполнения скрипта.Это правильно?Есть ли лучший способ отправить файл клиенту / браузеру, чтобы я мог указать ограничение по времени для команды print / flush?