Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Скачивание файлов с сервера используя PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

SoftICE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamshen
Да я даже ничего не редактировал, взял твой.....
 
ХЕЛП.

Всего записей: 1065 | Зарегистр. 10-01-2003 | Отправлено: 16:07 05-04-2004
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SoftICE
Где взял? Какой взял?

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 17:01 05-04-2004
Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сделать так, чтобы можно было сливать файл ТОЛЬКО в одну сессию?

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 17:34 15-04-2004
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terabyte
Это типа мне вопрос?

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 17:50 15-04-2004
Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamshen
Типа да =) Кстати, проверь свое мыло, я там вопрос намылил =)
 
А вот еще вопрос и ответ ввиде алгоритма, хотелось бы получить код на ПХП по алгоритму, если он верен =)
Вообще я так понял, единственная проблема для скачивания файлов не с локальной ссылки, а с глобальной - это узнать размер файла. Такой ф-ции как я понял нет. А если сделать так: дать запрос на скачивание файла с удаленного оста по ссылке, получить http-заголовок и НАЙТИ в нем размер файла. Если кто такое напишет , то я буду рад,  а то я еще с сокетами не работал...

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 18:50 15-04-2004
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Посмотри что происходит, когда ты пытаешься скачать файл. Какие заголовки клиент шлет серверу, какие сервер клиенту. Тебе поможет http-watch или качалка, которая показывает http заголовки. Или RFC почитай.

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 19:15 15-04-2004
Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
НУ вот например:
 
Input 25 8:48:58 16.4.2004 HTTP/1.1 200 OK
Input 25 Date: Fri, 16 Apr 2004 04:48:54 GMT
Input 25 Server: Apache/1.3.27 (Unix) mod_log_bytes/0.3 FrontPage/5.0.2.2510 PHP/4.3.2 mod_ssl/2.8.14 OpenSSL/0.9.7c
Input 25 Last-Modified: Mon, 05 Apr 2004 16:04:29 GMT
Input 25 ETag: "25eb84a-660ca9-4071838d"
Input 25 Accept-Ranges: bytes
Input 25 Content-Length: 6687913
Input 25 Connection: close
Input 25 Content-Type: application/octet-stream
 
Размер передается в поле Content-Length: 6687913
 
Ну и как его выцепить?

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 08:49 16-04-2004
Gretrick



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что то у меня не работает этот большой пример.

Всего записей: 718 | Зарегистр. 26-09-2003 | Отправлено: 17:52 05-05-2004
Aleksander

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Возникла тут проблемка со скриптом скачивания и отправки файлов..... решили изобретать велосипед, в результате получилось то что вы видите ниже(оставил только кусок отвечающий за скачивание на сервак хостера и разбивку его по 4 метра из-за ограничений ящика на который файлы посылаются). Естетственно о докачке и речи нешло когда оно делалось, и тут возникла другая проблема с файлами размеров <20 метров все без проблем........... однако чуть больше размер вызывает через некоторое время работы ошибку "502 Bad Gateway".... естетственно файл оказывается недокачан. Иногда на пару килобайт.......... иногда на пару метров........
Поскажите в какую сторону копать? где ошиблись? Если организовать по работу по тому примеру что приводился выше возможно избежать этих проблем?
 
if ($GLOBALS["HTTP_POST_VARS"]["submit"] && $GLOBALS["HTTP_POST_VARS"]["file"])
{
$ttt=microtime();
$ttt=((double)strstr($ttt, ' ')+(double)substr($ttt,0,strpos($ttt,' ')));
$abort = ignore_user_abort(1);
set_time_limit(3600);
 
$f1_temp = date("Y-m-d",time()).'-'.substr(MD5(microtime()),0,20);
$filename = $GLOBALS["HTTP_POST_VARS"]["file"];
 
$pos = strrpos($filename, "/");
$name=substr($filename,$pos+1);

$fd = fopen ($filename, "rb");

if ($fd){

$name1=$name.'1';
$myfile = fopen(PATH_site.'download/'.$name1,"wb");
$content.=$name1.'<br>';
    $count=0;
$ind=1;
while (!feof ($fd)) {

  $count+=4096;
  if ($count>60960000)
  {
     fclose ($myfile);  
     $count = 4096;
 $ind+=1;
       $name1=$name.$ind;
   $content.=$name1.'<br>';
 $myfile = fopen(PATH_site.'dwnal/'.$name1,"wb");
  }
  $line = fgets ($fd, 4096);
  fwrite($myfile,$line);
}
fclose ($fd);  
fclose ($myfile);  
$content.='download complete<br>';

$ddd=microtime();
$ddd=((double)strstr($ddd, ' ')+(double)substr($ddd,0,strpos($ddd,' ')));
 
$content.="<br>Прошло времени: ".(number_format(($ddd-$ttt),3))." секунд<br>";
}else{die('error');}
 
}
 

Всего записей: 219 | Зарегистр. 04-10-2001 | Отправлено: 20:12 25-07-2005
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksander

Цитата:
вызывает через некоторое время работы ошибку "502 Bad Gateway"

Это скорее всего связано с прокси-сервером.

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 20:41 25-07-2005
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PHP FAQ: Как делать UPLOAD файлов на сервер

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 20:41 25-07-2005
Aleksander

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KADABRA

Цитата:
Это скорее всего связано с прокси-сервером.

Я понимаю что по документации ошибка связана с прокси, но непонимают откуда он тут вылезает если файл напрямую забирается с HTTP1 и кладется мне на сервак с адресом HTTP2 в конкретную директорию DOWNLOAD.
Еще бы вот реферрер доделать чтобы работал......
 

Всего записей: 219 | Зарегистр. 04-10-2001 | Отправлено: 23:36 25-07-2005
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksander
Используй CURL. Там проще все и удобнее.

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 05:39 26-07-2005 | Исправлено: hamshen, 05:40 26-07-2005
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Используй CURL.
И чем он ему поможет в вышеприведённом коде?
Цитата:
Я понимаю что по документации ошибка связана с прокси
На основании каких данных ты сделал такие выводы? И была ли уже прочитана статья, где описаны ВСЕ возможные грабли и пути их решения в этой предметной области?

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 07:51 26-07-2005
Aleksander

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SiMM
 
Та статья что "PHP Faq"???? Или что-то еще есть?  
И кстати в выше приведенном коде можно все и заново сделать другими методами...... если с этим методом грабли может по другому если сделать то будет работать?

Всего записей: 219 | Зарегистр. 04-10-2001 | Отправлено: 10:12 26-07-2005
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SiMM

Цитата:
И чем он ему поможет в вышеприведённом коде?

Это было относительно реферера.

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 21:32 26-07-2005
Colobon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Приходицца поднимать тему, штоб новую не создавать.
 
Вопрос такой - возможно ли после окончания загрузки файла клиентом, выполнить определенный скрипт? Ну скажем, увеличить счетчик закачек этого файла...
Выполнять необходимо ток после полной загрузки.
Мож клиент посылает че-нить серверу после окончания загрузки?

Всего записей: 3 | Зарегистр. 29-05-2006 | Отправлено: 11:53 29-05-2006
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
можно просто в конце страницы(перед закрывающим боди) втулить жабаскрипт... но если у тебя есть фреймы - то  ХЗ загрузились они уже или нет.

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 12:13 29-05-2006
Colobon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не, в этом случае он полной загрузки не дождецца... Да и тож самое можно на onLoad в <body> повесить. Кароче, видна низя это... Вообще не смог представить как это выглядит, если докачка есть:\

Всего записей: 3 | Зарегистр. 29-05-2006 | Отправлено: 15:13 29-05-2006
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Мож клиент посылает че-нить серверу
Возьми да проверь.
PHP FAQ: Просмотр обмена HTTP заголовками
А вообще - есть такая вещь, как RFC 2616.

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 16:19 29-05-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » Скачивание файлов с сервера используя PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru