Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2012, 13:43   #1
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию Сохранение изображений с удаленного сервера на свой

Есть код

PHP код:
$host="путь";//путь к файлу на сервере, с которого происходит 
$fileName="путь";// Имя файла, который будет сохранен на данном сервере
//закачка
$fp=fopen($fileName,"w");//создаем пустой файл
fclose($fp);
$ch=curl_init();
curl_setopt($chCURLOPT_URL$host);//запускаем сеанс curl
$fp=fopen($fileName,"w+");//открываем файл для записи
curl_setopt($chCURLOPT_FILE$fp);// записываем в файл
curl_setopt($chCURLOPT_REFERER$host);
curl_setopt($chCURLOPT_AUTOREFERER1);
curl_exec ($ch);//выполняем команды curl
curl_close ($ch);//завершаем сеанс curl
fclose ($fp);//закрываем файл 
Подскажите, пожалуйста, на каком этапе и каким образом можно сделать проверку, по результату которой будет 100%-ая уверенность, что удаленное изображение точно существует...
Т.е. например пытаюсь скомсомолить картинку
PHP код:
$host "http://www.spb-estate.ru/user_files/normal/photo-normal-31-8954-92.jpg" 
но ее нет, и мой код создает файл photo-normal-31-8954-92.jpg , но в конечном итоге картинкой он не становится...
Minus_yu вне форума Ответить с цитированием
Старый 17.07.2012, 16:28   #2
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

перефразирую вопрос
как проверить файл на существование

PHP код:
    $url "http://www.spb-estate.ru/user_files/normal/photo-normal-31-8954-92.jpg";
    if (@
fopen($url"r")) {
        echo 
"+";
    } else {
        echo 
"-";
    } 
Файла (изображения) точно нет (по крайней мере, по тому адресу), но код говорит "+". Может быть дело в том, что происходит перенаправление при попытке зайти на http://www.spb-estate.ru/user_files/...31-8954-92.jpg ? Как быть в таком случае?
Minus_yu вне форума Ответить с цитированием
Старый 17.07.2012, 16:58   #3
chyvakoff
Пользователь
 
Аватар для chyvakoff
 
Регистрация: 10.12.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Minus_yu Посмотреть сообщение
перефразирую вопрос
как проверить файл на существование

PHP код:
    $url "http://www.spb-estate.ru/user_files/normal/photo-normal-31-8954-92.jpg";
    if (@
fopen($url"r")) {
        echo 
"+";
    } else {
        echo 
"-";
    } 
Файла (изображения) точно нет (по крайней мере, по тому адресу), но код говорит "+". Может быть дело в том, что происходит перенаправление при попытке зайти на http://www.spb-estate.ru/user_files/...31-8954-92.jpg ? Как быть в таком случае?
А зачем @`ой подавление ошибки делали?
Можно попробовать ещё где-нибудь прицепиться к размеру файла.
chyvakoff вне форума Ответить с цитированием
Старый 17.07.2012, 18:43   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Можно так:
PHP код:
$host="http://www.spb-estate.ru/user_files/normal/photo-normal-31-8954-92.jpg";//путь к файлу на сервере, с которого происходит
$fileName="test.jpg";// Имя файла, который будет сохранен на данном сервере 
$ch curl_init(); 
curl_setopt($chCURLOPT_URL$host); 
$fp=fopen($fileName,"w+");//открываем файл для записи 
curl_setopt($chCURLOPT_FILE$fp);// записываем в файл 
curl_setopt($chCURLOPT_REFERER$host); 
curl_setopt($chCURLOPT_AUTOREFERER1); 
curl_exec ($ch);
// проверка
if (curl_getinfo($chCURLINFO_HTTP_CODE) != 200) { 
    
unlink($fileName);// удаляем ненужный файл
    // делаем что-то ещё (пишем адрес в лог, выводим ошибку, etc...)


curl_close ($ch);//завершаем сеанс curl  
fclose ($fp);//закрываем файл 
Andkorol вне форума Ответить с цитированием
Старый 18.07.2012, 06:44   #5
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

Спасибо! Вот это
PHP код:
$host="http://www.spb-estate.ru/user_files/normal/photo-normal-31-8954-92.jpg";//путь к файлу на сервере, с которого происходит
$fileName="test.jpg";// Имя файла, который будет сохранен на данном сервере 
$ch curl_init(); 
curl_setopt($chCURLOPT_URL$host); 
$fp=fopen($fileName,"w+");//открываем файл для записи 
curl_setopt($chCURLOPT_FILE$fp);// записываем в файл 
curl_setopt($chCURLOPT_REFERER$host); 
curl_setopt($chCURLOPT_AUTOREFERER1); 
curl_exec ($ch);
// проверка
if (curl_getinfo($chCURLINFO_HTTP_CODE) != 200) { 
    
unlink($fileName);// удаляем ненужный файл
    // делаем что-то ещё (пишем адрес в лог, выводим ошибку, etc...)


curl_close ($ch);//завершаем сеанс curl  
fclose ($fp);//закрываем файл 
Помогло!
Minus_yu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свой шрифт в программе и ео сохранение DIMMUA Общие вопросы Delphi 4 06.07.2012 12:35
Сохранение всех изображений со страницы сайта! Andersen1313 JavaScript, Ajax 1 03.01.2012 01:35
сохранение рисунков с сервера(2) NSvirus PHP 1 05.11.2009 19:30
Сохранение картинок с сервера. NSvirus PHP 1 05.11.2009 11:52
Сохранение отредактированных изображений Fia Общие вопросы Delphi 2 23.04.2007 10:20