Как скопировать фотку полученную из url в другую папку

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 6 мая 2014 в 09:05
Всем привет, помогите скопировать фотографию полученную из url в другую папку, например:
$url = "site.ru/upload/000/u1/000/88aaafac.jpg";
$move_dir = "site.ru/upload/papka/";
Мне нужно $url скопировать в $move_dir
#2 6 мая 2014 в 09:12
file_put_contents($move_dir, file_get_contents($url));
#3 6 мая 2014 в 09:19

file_get_contents($url)

maxisoft
При условии, если allow_url_fopen = On
Вот еще вариант с curl (InstantCMS 2.0)
  1. function file_save_from_url($url, $destination){
  2.  
  3. if (!function_exists('curl_init')){ return false; }
  4.  
  5. $dest_file = @fopen($destination, "w");
  6.  
  7. $curl = curl_init();
  8. curl_setopt($curl, CURLOPT_URL, $url);
  9. curl_setopt($curl, CURLOPT_FILE, $dest_file);
  10. curl_setopt($curl, CURLOPT_HEADER, false);
  11. curl_exec($curl);
  12. curl_close($curl);
  13. fclose($dest_file);
  14.  
  15. return true;
  16.  
  17. }
#4 6 мая 2014 в 09:39
Вариант maxisoft, пишет ошибку
Warning: file_put_contents(http://test20.ru/upload/files/) [function.file-put-contents]: failed to open stream: HTTP wrapper does not support writeable connections in
Код такой:
  1. $url = href_to_home().''.$arr['u1_photo'];
  2. $move_dir = href_to_home().'/upload/files/';
  3. if (!is_writable($move_dir)){@chmod($move_dir, 0755); }
Вариант Fuze, тоже пишет ошибку, и какие то крякозябры выводить
Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in Z:\home\test20.ru\www\system\libs\files.helper.php on line 223
Код:
  1. $url = href_to_home().''.$arr['u1_photo'];
  2. $move_dir = href_to_home().'/upload/files/';
  3. $res = file_save_from_url($url, $move_dir);
#5 6 мая 2014 в 10:00
Вот по такому коду получилось
  1. $url = href_to_home().''.$arr['u1_photo'];
  2. $package_name = basename($url);
  3. $destination = cmsConfig::get('upload_path') . 'files/' . $package_name;
  4. $result = file_put_contents($destination, file_get_contents($url));
Но было бы не плохо если по curl тоже заработал, в случии если allow_url_fopen = Off
хотя по коду Fuze картинка сохраняется. но её не просмотреть. и размер файла 0 байт
#6 6 мая 2014 в 10:16

allow_url_fopen = Off

Evanescence
из практики такое было только на 10% забугорных хостингах и то не особо распространненых

из моего примера есть ошибка я просто не так понял изначально
вот правильный код
  1.  
  2. $url = "http://site.ru/upload/000/u1/000/88aaafac.jpg";
  3. $move_dir = "http://site.ru/upload/papka/";
  4. $filename = basename($url);
  5. file_put_contents($move_dir.'/'.$filename, file_get_contents($url));
  6.  
я просто привел пример, а не готовый вариант в первом посте, естественно будет ошибка если вы не указали имя файла куда вам записать данные.


Посмотрел код Фуза все рабочее на 100% опять вы просто тупо скопипастили код, нужно в $destination иметь не просто папку а еще и имя файла.
#7 6 мая 2014 в 11:44
maxisoft, и Fuze, Спасибо, всё работает)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.