Подсчёт полной закачки файла к клиенту ?

zol

Новичок
Подсчёт полной закачки файла к клиенту ?

Есть проблемка не могу её решит

Задача после полной загрузки файла с сервера выполнить удаление её (точнее её сесионное с имя в базы)
- поддерживается потоковая загрузка
- также поддерживается продолжение загрузки (дозакачка)

сам файл считывается примерно так:
PHP:
 $handle = @fopen($filename, 'rb');
		fseek($handle,$range);

		if ($handle === false)
		{
			return false;
		}

		while (!feof($handle))
		{
			print (fread($handle, 1024*8));
			ob_flush();
			flush();
			usleep($sleep_time);

		}
это не полный код там также есть выше проверка на потоковую загрузку

В обще как сделат проверку что именно весь файл скачался к клиенту?
 

cDLEON

Онанист РНРСlub
А ни как не сделать.
Это не контролируемо. Нельзя узнать сколько клиент уже получил
Есть вариант, что ты покет отправил,а на середине приёма покета клиент прервал загрузку. И все рассчёты естественно будут не точны.
 

zol

Новичок
а мне надо токо узнать если в конце он докачал его
например если в один поток качает так ето легко в конче поставит запрос на удаление строки из таблицы
а вот когда качает в несколко потоков то как я понимаю последни поток если закачивается раньше других то получается он доходит до feof (конца файла) и стирает ранше времени запись.
 

kruglov

Новичок
А если пользователь качал-качал в 3 потока, скачал половину, у него интернет отвалился, он 2 часа ходил интернет оплачивать, оплатил, начал опять докачивать. Он докачает этот файл? А если он 2 дня его (интернет) оплачивать будет?

Теоретически можно считать отданным файл, если мы отдали столько-то байт за столько-то времени при скорости с такой-то стабильностью.
 

zol

Новичок
Автор оригинала: kruglov
А если пользователь качал-качал в 3 потока, скачал половину, у него интернет отвалился, он 2 часа ходил интернет оплачивать, оплатил, начал опять докачивать. Он докачает этот файл? А если он 2 дня его (интернет) оплачивать будет?

Теоретически можно считать отданным файл, если мы отдали столько-то байт за столько-то времени при скорости с такой-то стабильностью.
во именно говорю про это поидее сама сесия в базе будет оставатся пока человек не закачает файл челиком
просто надо знать когда удалить сесию (типа когда наконец докачает)

п.с. я думал есть уже готовые фонкции по этому поводу
 

zerkms

TDD infected
Команда форума
Теоретически можно считать отданным файл, если мы отдали столько-то байт за столько-то времени при скорости с такой-то стабильностью.
нельзя. как уже было сказано выше - факт того, что байт отдан никак не гарантирует того, что байт принят.
 
Сверху