Forum Webscript.Ru
Программирование => PHP => Тема начата: litvinenko от 16 Июня 2006, 09:49:28
-
Доброго времени суток всем!
Помогите люди добрые.
Начальство поставило такую вот, на мой взгляд, бесполезную, но ОЧЕНЬ хЫтрую задачу. Вот ее полный текст:
"нужен скрипт.
входным параметром он получает имя файла который надо закачать человеку.
берет этот файл и начинает отдавать. если закачка прервалась - он отсылает на страницу - извините не получилось. если все прошло успешно прокидывает на страницу - спасибо большое."
Помогите, плз. С самой закачкой проблем нет. Но вот, как отследить, докачался ли файл полностью, ничего ли не произошло плохого во время скачивания - это у меня не получается отследить.
-
ИМХО, за этим следить должен получатель.
-
структура такая:
из файла 1.php открывается окно 2.php, где происходит скачивание файла и запись кол-ва скачанных байт в файл count.txt
Мне осталось только в файле 1.php одновременно с выполнением скрипта из 2.php проверять значение в файле count.txt с реальным размером скаченного файла.
НО в этом то и вся проблема: как сделать так, чтобы это происходило одновременно?
--------
файл 1.php
echo "";
$size = file(\'count.txt\');
if($size[0]==filesize(\'12.zip\'))
{
echo "ok";
}
else
{
echo "bad";
}
?>
Файл 2.php
$file = $_GET[\'file\'];
ignore_user_abort(false);
header(\'Content-Type: application/octet-stream;\');
header(\'Content-Disposition: attachment; filename="\'.$file.\'"\');
$contents = \'\';
define(\'FILE_PART_SIZE\',8192);
$c = readfile($file);
$h2=fopen(\'count.txt\',\'w\');
fwrite($h2,$c);
fclose($h2);
flush();
fclose($h);
?>
-
1. В поиск по AJAX.
2. Здесь считается какой объем отдал сценарий, а то что все что он вывел, дойдет до получателя еще отнюдь не факт.
И flush() ставь, после последнего header, потому что пока не придут все заголовки браузер ничего качать не будет.
-
вот интересный линк
http://netgen.com.ua/forums/topic.php?id=301