Jump to content

Recommended Posts

Подскажите как сделать импорт картинок с 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://')

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

 

Link to post
Share on other sites

Смотрите

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.

Link to post
Share on other sites

Смотрите

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.

 

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

Link to post
Share on other sites

Подскажите как сделать импорт картинок с 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))
{
...
}
Link to post
Share on other sites

 

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

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

 

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

 

Link to post
Share on other sites

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

 

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

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

 

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

 

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

Link to post
Share on other sites

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

 

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

https://code-live.ru/post/php-url-validation/
Link to post
Share on other sites

 

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

 

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

Link to post
Share on other sites

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

 

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

Вован сходи к мозгоправу у тебя с головой проблемы при чём серьезные!
Link to post
Share on other sites
  • 10 months later...

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

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);
Может кому пригодиться :)
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...