Как скачать несколько файлов без потери данных?

deepslam

Новичок
Как скачать несколько файлов без потери данных?

В общем суть вопроса:
Нужно скачать несколько файлов один за другим (т.е. в цикле). Все файлы скачиваются, но почему то каждый раз разный размер.
Вот код:
PHP:
include "config/main.cfg.php";
 include "lib/main.lib.php";
  if (SQLConnect()) {
   cleardir($config["priceroot"]);
    $res=mysql_query("select * from `firms`");
    while ($row=mysql_fetch_array($res)) {
 $url=$row["pricelist"];
 $filename=GetFileName($url);
 echo $url."<br>";
  $k=0;
//&#238;&#242;&#234;&#240;&#251;&#226;&#224;&#229;&#236; url
  $f2=fopen($config["priceroot"]."/".$filename,"w+");
  if (($f2)) {
  $k++;
  fwrite($f2,file_get_contents($url));
  fclose($f2);
  
  }
	}//&#246;&#232;&#234;&#235; $row
  }//SQLConnect
Не пойму в чем проблема. Видимо он не успевает скачивать файл (((
При использовании вместо file_get_contents , fread и цикла по feof такая же ерунда.
 

md5hash

Новичок
Ты зачем w+ поставил, + - добавляет в конец :), а чтобы перезаписать то оставь просто w.
 

deepslam

Новичок
md5hash
Сорри, это не заметил =))
Но на самом деле это не меняло суть дело, т.к. в начале вызывается функция cleardir, которая удаляет все файлы из папки...
Из за чего файлы не докачиваются не пойму...Причем каждый раз разный размер блин. Иногда нормально качает...
 

md5hash

Новичок
) сорри, cleardir я и не заметил
попробуй побаловаться с
max_execution_time
в php.ini
 

deepslam

Новичок
baev
кхе =))) ЛОЛ...че та я совсем заработался блин ...
a- append
w- запись
w+ - запись и чтение
ну и r соответственно
...
md5hash
пробовал ни фига (((
Ставил set_time_limit (0) - не помогло (((

-~{}~ 28.07.05 13:29:

Люди а на хостинге может стоять какое либо ограничение на размер скачиваемых данных скриптом за определенное время? Просто я заметил что если перезапустить скрипт минут через 5 то он работает нормально. Кстати сделал тоже самое через cUrl, но проблема актуальна.

-~{}~ 28.07.05 14:57:

Вот процедура скачивания файла:
PHP:
function DownloadPrice($url,$to) {
  $fp = fopen($to, "w");
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_FILE, $fp);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_REFERER, $url);
  curl_exec($ch);
  $arr=curl_getinfo($ch);
  echo "Имя файла: ".$arr["url"]."<br>";  
  echo "Размер файла: ".($arr["size_download"]/1024)." KB<br>";
  echo "Скорость скачивания: ".($arr["speed_download"]/1024)." KB<br>"; 
  echo "cURL error:" . curl_error($ch)."<br>";
  curl_close($ch);
  fclose($fp);
}
При удачном скачивании пишет:
Имя файла: http://oldi.ru/price/oldipr.zip
Размер файла: 290.021484375 KB
Скорость скачивания: 3362.216796875 KB
cURL error:
Имя файла: http://www.usn.ru/upload/price/pricexls.zip
Размер файла: 330.1728515625 KB
Скорость скачивания: 5212.376953125 KB
cURL error:
Имя файла: ftp://ftp2.nix.ru/download/price/Nix3.ZIP
Размер файла: 394.24609375 KB
Скорость скачивания: 827.267578125 KB
cURL error:
Имя файла: http://fast.ultracomp.ru/prices/msk/ultra_xls.zip
Размер файла: 1502.9619140625 KB
Скорость скачивания: 4556.8876953125 KB
cURL error:
Имя файла: http://www.desten.ru/prices/Desten.zip
Размер файла: 255.3974609375 KB
Скорость скачивания: 1620.2333984375 KB
cURL error:
Имя файла: http://www.snabprom.ru/price/snabpromprice.xls
Размер файла: 831.5 KB
Скорость скачивания: 109.1640625 KB
cURL error:

При неудачном скачивании (происходит через 1-3 раза) пишет:
Имя файла: http://oldi.ru/price/oldipr.zip
Размер файла: 32.2744140625 KB
Скорость скачивания: 1215.8369140625 KB
cURL error:Failed writing body
Имя файла: http://www.usn.ru/upload/price/pricexls.zip
Размер файла: 16.6953125 KB
Скорость скачивания: 953.3095703125 KB
cURL error:Failed writing body
Имя файла: ftp://ftp2.nix.ru/download/price/Nix3.ZIP
Размер файла: 16.96875 KB
Скорость скачивания: 244.6015625 KB
cURL error:Failed writing body
Имя файла: http://fast.ultracomp.ru/prices/msk/ultra_xls.zip
Размер файла: 16.662109375 KB
Скорость скачивания: 682.95703125 KB
cURL error:Failed writing body
Имя файла: http://www.desten.ru/prices/Desten.zip
Размер файла: 16.7265625 KB
Скорость скачивания: 539.775390625 KB
cURL error:Failed writing body
Имя файла: http://www.snabprom.ru/price/snabpromprice.xls
Размер файла: 19.5029296875 KB
Скорость скачивания: 70.40234375 KB
cURL error:Failed writing body

Значит это связано с файловой системой??? Почему она файл то не может созджать не пойму ...
 

kvf77

Red Devil
deepslam

в свое время у моего провайдера стоял запрет на частое скачивание скриптами файлов с другого сервера, или со своего же, но не штатными средствами типа fread
 
Сверху