Показать сообщение отдельно
  #3 (permalink)  
Старый 26.01.2012, 21:29
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Сообщение от melky
проблема только в том, чтобы высчитать md5 для файла в источнике
вот и я думаю как это сделать... ведь если мы просто считаем этот файл, то нет гарантии что нам файл выдался до конца, и не произошло обрывов связи. Хотя если подумать то наверное что-то вроде этого должно стабильно работать:
function safe_copy($source_file, $destination_file) {
	if(!$sMD5_step1=@md5_file($source_file)) return false;
	if(!@copy($source_file, $destination_file)) return false;
	if(!$sMD5_step2=@md5_file($destination_file)) return false;
	if($sMD5_step1!==$sMD5_step2) return false;
	return true;
}

Как я понимаю, тут получилась двойная проверка, т.к. по сути здесь 2 запроса на сервер: md5_file($source_file) и copy($source_file, $destination_file). А при проблемах со связью он не может дважды выдать файл одинаково неполный.
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн

Последний раз редактировалось greatilya, 26.01.2012 в 21:32.
Ответить с цитированием