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');} } |