А где-же проверка/нормализация $path перед сохранением изображения по этому пути?
Код |
---|
func tion GetImageByURL($url, $path = null) {
$opts = array(CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10);
$ch = curl_init();
curl_setopt_array($ch, $opts);
$result = curl_exec($ch);
if ((curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200 &&
(strpos(curl_getinfo($ch, CURLINFO_CONTENT_TYPE), "image") !== false))) {
$name = substr($url, strrpos($url, '/')+1);
if ($path) {
if (is_writeable($path))
file_put_contents(rtrim($path, '/') . '/' . $name, $result);
else
echo "Недостаточно прав для записи в папку : {$path}";
}
return $name;
}
curl_close($ch);
return false;
}
|
Если это обязанность вызывающего кода, то кажется это не очевидно и может нести потенциальные проблемы. Вам Евгений Малков правильно говорит: CFile::MakeFileArray + CFile::SaveFile. не забыв перед вызовом CFile::MakeFileArray проверить URI на корректность.