Скачать файл с одновременным делением его на части

timson

Новичок
Скачать файл с одновременным делением его на части

нужно скачать файл на сервер (или на какой-нить фтп) и одновременно делить его на части. Т.е. например скачиваем файл 100 мб, а пишем на сервак 10 файлов по 10 Мб.


вот я накидал функцию
PHP:
function CopyFile2home ($filename, $src)
{
	if ( ($fSrc = fopen ($src, "r")) == FALSE )
		// err
		
	$dst    = $filename. ".001";
	if ( ($fDst = fopen ($dst, "w")) == FALSE )
		// err
		
	$file_size  = 0;
	$writed     = 0;
	$num        = 1;

	while ( !feof($fSrc) )
	{
		$buf    = fread ($fSrc, 1024*1024); // 1 Mb - buffer size
		if ( $buf == FALSE )
			// err

		$bytes  = fwrite($fDst, $buf);
		if ( $bytes == FALSE )
			// err
			
		$writed     += $bytes;
		$file_size  += $bytes;
		
		if ( $writed > 10 * 1024*1024 )   // 10 Mb - part size
		{
			fclose ($fDst);

			$num++;
			$stmp	= sprintf (".%03d", $num);
			$dst	= $filename. $stmp;
			if ( ($fDst = fopen ($dst, "w")) == FALSE )
				// err
			
			$writed = 0;
		}
	}
	
	fclose ($fDst);
	fclose ($fSrc);
}

но вот трабла, почему-то на разделке файлов возникает глюк.
в начале следующей части вместо исходных байт пишеться блок "мусора" (примерно чуть меньшего размера чем исходный блок, ~30-40 kb). конец части нормальный.

такое ощущение что как-то асинхронно все выполняется.. причем этот "мусор" нигде в исходном файле не встречается! Ладно бы мусор просто добавлялся в начало, он вместо исходного с искаженной длиной.

Никто не видит тута причины какой-нить???
 

serglt

Анус, ой, Ахтунг
А у тебя где ошибки - обрабатывается что нить или там просто комент?
 

timson

Новичок
Автор оригинала: serglt
А у тебя где ошибки - обрабатывается что нить или там просто комент?
это я тута не привел, чтоб не заграмождать тут кодом.
а там у меня сообщение что ошибка и прерывание цикла/функции:

PHP:
	{
    echo "Can't open file '$src'<br>";
    break; // or return;
}
 
Сверху