Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: копирование больших файлов с чужого сайта на свой сайт
Форумы портала PHP.SU » » Работа с файловой системой и файлами » копирование больших файлов с чужого сайта на свой сайт

Страниц (1): [1]
 

1. РоманРоманыч - 18 Апреля, 2012 - 13:13:08 - перейти к сообщению
Привет всем! давно хотел узнать, а теперь появилась острая необходимость решить следующую задачку. у меня есть пустой сайт с относительно большим объемом, мне нужно скопировать файлы с другого сайта на свой. php copy() get_file_contents() readfile() работа.т не всегда так как если файл достаточно большой срабатывает timeout сервера всплывает warning и файл не полностью копируется. как можно реализовать нормальную загрузку без прерываний имея прямую ссылку на файл? как реализована удаленное мультикопирование например на depositfiles, знаю что только на php не получится. кто сталкивался подскажите пожалуйста! очень не хочется вручную скачивать на комп а потом загружать на сайт.
Однако
2. Zuldek - 18 Апреля, 2012 - 13:15:50 - перейти к сообщению
Если это разовая операция не изобретай велосипед а воспользуйся любым готовым инструментом для зеркалирования сайтов. Выкачает все, включая файлы. Приложений десятки, включая плагины под FireFox.
3. РоманРоманыч - 18 Апреля, 2012 - 14:42:48 - перейти к сообщению
зеркалирование не годится, структуры и назначение сайтов разные. на сайте источнике (их несколько) хранить стало накладно, нашел хостинг подешевле, теперь стоит задача как весь багаж переместить по http ссылкам (не по ftp) со всех в одно место программно. нужна функция аналог php copy() на любом языке. в данный момент если копирование занимает больше 30 сек. естественно оно прерывается с ошибкой таймаута из конфига php. максимальный размер файлов на хостинге не при чем, размер в рамках допустимого. перечитал много статей, но такого не встречал пока.
4. РоманРоманыч - 19 Апреля, 2012 - 00:48:28 - перейти к сообщению
нашел похожее решение, но функция не работает, размер любого скопированного файла с ее помощью равен нулю.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function curl_get_remote( $url, $local_filename )
  4. {
  5.     if( ! ($fh = fopen($local_filename, 'wb')) )
  6.         return false;
  7.     $ch = curl_init( $url );
  8.     curl_setopt( $ch, CURLOPT_NOPROGRESS, 0 );
  9.     curl_setopt( $ch, CURLOPT_FILE, $fh );
  10.     curl_exec( $ch );
  11.     fclose( $fh );
  12.     return true;
  13. }
  14.  
  15. ?>
  16.  

от этой такой же эффект
PHP:
скопировать код в буфер обмена
  1.  
  2. function get_remote_file($path,$url)
  3. {
  4.     $ch = curl_init($url);
  5.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6.     $data = curl_exec($ch);
  7.     curl_close($ch);
  8.     file_put_contents($path, $data);
  9. }
  10.  
  11.  

подскажите что не так? или в настройках хостинга дело? Огорчение

 

Powered by ExBB FM 1.0 RC1