alexivchenko Опубликовано 12 ноября, 2018 Жалоба Поделиться Опубликовано 12 ноября, 2018 Подскажите как сделать импорт картинок с 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://') Никаких изменений. Цитата Ссылка на сообщение Поделиться на другие сайты
simpla24 Опубликовано 12 ноября, 2018 Жалоба Поделиться Опубликовано 12 ноября, 2018 Мне удавалось выкачивать картинки так:- файл image.php я не менял- ссылку на картинку делал http Попробуйте Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 13 ноября, 2018 Жалоба Поделиться Опубликовано 13 ноября, 2018 Смотрите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. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 13 ноября, 2018 Автор Жалоба Поделиться Опубликовано 13 ноября, 2018 Смотрите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. Спасибо, помогло! Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 13 ноября, 2018 Жалоба Поделиться Опубликовано 13 ноября, 2018 Подскажите как сделать импорт картинок с 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)) { ... } Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 14 ноября, 2018 Жалоба Поделиться Опубликовано 14 ноября, 2018 Думаю так будет куда проще и правильней т.к. нет ограничений по протоколам: if(filter_var($source_file, FILTER_VALIDATE_URL)) { ... } Совсем не очевидно, что будет лучше. Вопрос очень даже спорный. Например, для явно ошибочного значения source_file='mmm://ff.png' условие будет истинно. Появится битая ссылка на картинку. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 14 ноября, 2018 Жалоба Поделиться Опубликовано 14 ноября, 2018 Совсем не очевидно, что будет лучше. Вопрос очень даже спорный. Например, для явно ошибочного значения source_file='mmm://ff.png' условие будет истинно. Появится битая ссылка на картинку. Только в том случае если такие уникалы как ты будут так именовать файлы. А вообще спасибо, я проверю. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 14 ноября, 2018 Жалоба Поделиться Опубликовано 14 ноября, 2018 Только в том случае если такие уникалы как ты будут так именовать файлы. А вообще спасибо, я проверю. В программировании давным-давно принято проверять входные данные максимально полно. Это объективное требование - потому как обычно пользователей разных много, и ошибок, которые они могут совершить и реально совершают - море бескрайнее... А надеяться на правильные данные - программистом не быть. Или быть откровенно негодящим, давно морально устаревшим... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 14 ноября, 2018 Жалоба Поделиться Опубликовано 14 ноября, 2018 В программировании давным-давно принято проверять входные данные максимально полно. Это объективное требование - потому как обычно пользователей разных много, и ошибок, которые они могут совершить и реально совершают - море бескрайнее... А надеяться на правильные данные - программистом не быть. Или быть откровенно негодящим, давно морально устаревшим...https://code-live.ru/post/php-url-validation/ Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 14 ноября, 2018 Жалоба Поделиться Опубликовано 14 ноября, 2018 https://code-live.ru/post/php-url-validation/ По ссылке как раз и говорится "Не забывайте должным образом обрабатывать данные, пришедшие от пользователя..." Там нигде не сказано - пишите в инструкции к своим разраработкам - мол, прежде чем использовать, обратитесь к специалисту с большими скилами, чтобы он проверил - уникал Вы или не уникал и дал заключение, можно ли Вам использовать разработку и нет ли противопоказаний... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 14 ноября, 2018 Жалоба Поделиться Опубликовано 14 ноября, 2018 По ссылке как раз и говорится "Не забывайте должным образом обрабатывать данные, пришедшие от пользователя..." Там нигде не сказано - пишите в инструкции к своим разраработкам - мол, прежде чем использовать, обратитесь к специалисту с большими скилами, чтобы он проверил - уникал Вы или не уникал и дал заключение, можно ли Вам использовать разработку и нет ли противопоказаний...Вован сходи к мозгоправу у тебя с головой проблемы при чём серьезные! Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 25 сентября, 2019 Жалоба Поделиться Опубликовано 25 сентября, 2019 Думаю так будет куда проще и правильней т.к. нет ограничений по протоколам: 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); Может кому пригодиться Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.