Forum Webscript.Ru

Программирование => PHP => Тема начата: litvinenko от 16 Июня 2006, 09:49:28

Название: Контроль за скачиванием файлов
Отправлено: litvinenko от 16 Июня 2006, 09:49:28
Доброго времени суток всем!
Помогите люди добрые.
Начальство поставило такую вот, на мой взгляд, бесполезную, но ОЧЕНЬ хЫтрую задачу. Вот ее полный текст:

"нужен скрипт.

входным параметром он получает имя файла который надо закачать человеку.
берет этот файл и начинает отдавать. если закачка прервалась - он отсылает на страницу - извините не получилось. если все прошло успешно прокидывает на страницу - спасибо большое."

Помогите, плз. С самой закачкой проблем нет. Но вот, как отследить, докачался ли файл полностью, ничего ли не произошло плохого во время скачивания - это у меня не получается отследить.
Название: Контроль за скачиванием файлов
Отправлено: vasa_c от 16 Июня 2006, 10:47:36
ИМХО, за этим следить должен получатель.
Название: Контроль за скачиванием файлов
Отправлено: litvinenko от 16 Июня 2006, 11:02:03
структура такая:

из файла 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);
?>
Название: Контроль за скачиванием файлов
Отправлено: vasa_c от 16 Июня 2006, 11:34:30
1. В поиск по AJAX.
2. Здесь считается какой объем отдал сценарий, а то что все что он вывел, дойдет до получателя еще отнюдь не факт.
И flush() ставь, после последнего header, потому что пока не придут все заголовки браузер ничего качать не будет.
Название: Контроль за скачиванием файлов
Отправлено: grisha от 16 Июня 2006, 12:21:59
вот интересный линк
http://netgen.com.ua/forums/topic.php?id=301