Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как определить на php пользователь докачал фаил или нет?

14K
06 декабря 2005 года
maxy
2 / / 06.12.2005
вот примерно как я хочу выдавать ему фаил:


<?
$file="";
$host="";
$target="";
$refer=""; // чтобы
$handle=fopen($file,"r");

echo "
POST $target HTTP/1.0\r\n
Host: $host\r\n
Referer: $refer\r\n
Cookie: income=1\r\n
Content-Type: multipart/form-data; boundary=1BEF0A57BE110FD467A\r\n
Content-Length: 491\r\n
\r\n
--1BEF0A57BE110FD467A\r\n
Content-Disposition: form-data; name="mp3_headr"\r\n
\r\n
Происходит закачка mp3\r\n
--1BEF0A57BE110FD467A\r\n
Content-Disposition: form-data; name="mp3_file"; filename="$file"\r\n
Content-Type: application/octet-stream\r\n
Content-Transfer-Encoding: binary\r\n
\r\n
--1BEF0A57BE110FD467A--\r\n
";
while (!feof ($file)) {
$buffer = fgets($file, 4096);
echo $buffer;
}

$fclose($file);
?>


как можно проконтролировать, что он его скачал полностью?


Возможно ли использование вот этой ф-ции:

connection_aborted(),

ссылка на мануал:
http://ru.php.net/manual/ru/features.connection-handling.php
4
06 декабря 2005 года
mike
3.7K / / 01.10.2002
Во первых, ignore_user_abort лучше не использовать при скачивании файлов.

Во вторых поля реферер и хост должен отдавать пользователь серверу, а не сервер пользователю. Из можно смело убрать.

Я бы попоробовал использовать Output Buffering для такого контроля.
14K
06 декабря 2005 года
maxy
2 / / 06.12.2005
Цитата:
Originally posted by mike
Я бы попоробовал использовать Output Buffering для такого контроля.



а по подробней можно?

4.7K
07 декабря 2005 года
Extractor
151 / / 26.08.2005
вообще не понятно, нафик так страшно написано.... и много?

Код:
/* если закачка происходит с начала иначе число байт для смещения */
$seek = 0;

$FileName = "1.mp3";
$file_size = filesize($FileName)-$seek;

if ($file_size > 0)
 {
  header("Content-Length: $file_size");
  header("Content-Disposition: form-data; name=mp3_file; filename=$FileName");
  header("Content-Type: application/octet-stream");
  header("Content-Transfer-Encoding: binary");

  $handle = fopen($FileName,"r");
  fseek($handle, $seek,SEEK_SET);

  while (!feof ($handle))
   {
    echo fgets($handle, 4096);
   }
  $fclose($handle);
 }


эт по поводу скрипта закачки, а как проверить? да никак ты не проверишь... если только не проверять, не оборвалось ли соединение в цикле while, как это на пхп сделать не знаю

PS не ну ты посмотри ввел меня в заблуждение! функции feof, fgets и т.д. используют хэндл а не имя файла
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог