На сайте публикуются разные изображения, точнее ссылки на них. Столкнулся с рядом проблем, например, при репосте в твиттер не все картинки со сторонних ссылок подтягиваются по разным причинам.
Решил эту проблему так:
1) Генерирую ссылку вида mysite.ru?proxy=base64encodedurl
То есть беру стороннюю ссылку, кодирую ее в base64 и подставляю параметров в адресную строку.
Этот запрос обрабатывается на сервере вот так
header("Content-type: image");
$url = base64_decode($url);
if (getFileSize($url) > 500000) {//Если размер картинки больше 500кб, не обрабатываем
return $url;
}
$handle = fopen($url, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
То есть сервер скачивает картинку и отдает.
Какие подводные камни могут быть у такого решения? Стоит ли беспокоиться о дополнительной нагрузке или она будет минимальна?