Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Подскажите как сделать импорт картинок с https 

 

При стандартном импорте получается так http://localhost/simpla2/files/products/https%3A%2F%2Fsite.ru%2Ffiles%2Fproducts%2F9793.970.800x600.800x600w.jpg?4cb37d4302fd6f1de53a7ab16a277a0e

 

В файле api/Image.php 

 

Изменил строчку 

// Если вайл удаленный (http://), зальем его себе
if(substr($source_file, 0, 7) == 'https://' || substr($source_file, 0, 8) == 'http://')

Никаких изменений.

 

Ссылка на сообщение
Поделиться на другие сайты

Мне удавалось выкачивать картинки так:

- файл image.php я не менял

- ссылку на картинку делал http

 

Попробуйте

Ссылка на сообщение
Поделиться на другие сайты

Смотрите

http://forum.simplacms.ru/topic/13613-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9-%D1%81-https-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2/?p=106629

Но то решение работает не всегда, зависит от конфигурации сервера своего и сервера удаленного. По хорошему, надо программировать аккуратнее, используя CURL.

Ссылка на сообщение
Поделиться на другие сайты

Смотрите

http://forum.simplacms.ru/topic/13613-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9-%D1%81-https-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2/?p=106629

Но то решение работает не всегда, зависит от конфигурации сервера своего и сервера удаленного. По хорошему, надо программировать аккуратнее, используя CURL.

 

Спасибо, помогло!

Ссылка на сообщение
Поделиться на другие сайты

Подскажите как сделать импорт картинок с https 

 

При стандартном импорте получается так http://localhost/simpla2/files/products/https://site.ru/files/products/9793.970.800x600.800x600w.jpg?4cb37d4302fd6f1de53a7ab16a277a0e

 

В файле api/Image.php 

 

Изменил строчку 

// Если вайл удаленный (http://), зальем его себе
if(substr($source_file, 0, 7) == 'https://' || substr($source_file, 0, 8) == 'http://')
Никаких изменений.

 

 

Думаю так будет куда проще и правильней т.к. нет ограничений по протоколам:
if(filter_var($source_file, FILTER_VALIDATE_URL))
{
...
}
Ссылка на сообщение
Поделиться на другие сайты

 

Думаю так будет куда проще и правильней т.к. нет ограничений по протоколам:

if(filter_var($source_file, FILTER_VALIDATE_URL))
{
...
}

 

Совсем не очевидно, что будет лучше. Вопрос очень даже спорный. Например, для явно ошибочного значения source_file='mmm://ff.png' условие будет истинно.  Появится битая ссылка на картинку.

 

Ссылка на сообщение
Поделиться на другие сайты

Совсем не очевидно, что будет лучше. Вопрос очень даже спорный. Например, для явно ошибочного значения source_file='mmm://ff.png' условие будет истинно. Появится битая ссылка на картинку.

 

Только в том случае если такие уникалы как ты будут так именовать файлы. А вообще спасибо, я проверю.
Ссылка на сообщение
Поделиться на другие сайты

Только в том случае если такие уникалы как ты будут так именовать файлы. А вообще спасибо, я проверю.

 

В программировании давным-давно принято проверять входные данные максимально полно. Это объективное требование - потому как обычно пользователей разных много, и ошибок, которые они могут совершить и реально совершают - море бескрайнее...

 

А надеяться на правильные данные - программистом не быть. Или быть откровенно негодящим, давно морально устаревшим...

Ссылка на сообщение
Поделиться на другие сайты

В программировании давным-давно принято проверять входные данные максимально полно. Это объективное требование - потому как обычно пользователей разных много, и ошибок, которые они могут совершить и реально совершают - море бескрайнее...

 

А надеяться на правильные данные - программистом не быть. Или быть откровенно негодящим, давно морально устаревшим...

https://code-live.ru/post/php-url-validation/
Ссылка на сообщение
Поделиться на другие сайты

 

По ссылке как раз и говорится "Не забывайте должным образом обрабатывать данные, пришедшие от пользователя..."

 

Там нигде не сказано - пишите в инструкции к своим разраработкам - мол, прежде чем использовать, обратитесь к специалисту с большими скилами, чтобы он проверил - уникал Вы или не уникал и дал заключение, можно ли Вам использовать разработку и нет ли противопоказаний...

Ссылка на сообщение
Поделиться на другие сайты

По ссылке как раз и говорится "Не забывайте должным образом обрабатывать данные, пришедшие от пользователя..."

 

Там нигде не сказано - пишите в инструкции к своим разраработкам - мол, прежде чем использовать, обратитесь к специалисту с большими скилами, чтобы он проверил - уникал Вы или не уникал и дал заключение, можно ли Вам использовать разработку и нет ли противопоказаний...

Вован сходи к мозгоправу у тебя с головой проблемы при чём серьезные!
Ссылка на сообщение
Поделиться на другие сайты
  • 10 месяцев спустя...

Думаю так будет куда проще и правильней т.к. нет ограничений по протоколам:

if(filter_var($source_file, FILTER_VALIDATE_URL))
{
...
}

 

 

Сегодня столкнулся с проблемой заливки картинок с кириллического домена, такая проверка не учитывает такие домены, а по этому заливаться картинка не будет.

Также нужно переделывать функцию download_image, вот небольшой набросок через CURL:

$res 		= parse_url($filename);
$filename 	= idn_to_ascii($res['host']).$res['path'];

$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $filename);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$data = curl_exec($ch);
file_put_contents($this->config->root_dir.$this->config->original_images_dir.$new_name, $data);

curl_close($ch);
Может кому пригодиться :)
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...