Я пытаюсь захватить изображение с внешнего сервера с fsockopen
в PHP. Мне нужно получить данные изображения в переменную в кодировке BASE64 в моем коде. Изображение является файлом типа .jpeg и представляет собой небольшое изображение.PHP - получить изображение с fsockopen
Не удалось найти ответы на вопросы Google после некоторых поисков. Так что я задаюсь вопросом, возможно ли это даже прямо, без каких-либо странных обходных решений?
Любая помощь и/или предложения очень ценятся!
Заметим, что allow_url_fopen
отключен на моем сервере из-за угроз безопасности.
Это мой текущий код:
$wn_server = "111.111.111.111";
$url = "GET /webnative/portalDI?action=getimage&filetype=small&path=".$tmp." HTTP/1.1\r\n";
$fp = fsockopen($wn_server,80,$errno,$errstr,15);
stream_set_timeout($fp, 30);
$imageDataStream = "";
if (!$fp) {
echo "Error " . $errno . "(" . $errstr . ")";
} else {
$out = $url;
$out .= "Host: " . $wn_server . "\r\n";
$out .= "Authorization: Basic " . $_SESSION['USER'] . "\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= "\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$imageDataStream .= fgets($fp, 128);
}
fclose($fp);
}
Спасибо. Но я пропустил (мой плохой). Я хотел сказать «fsockopen» вместо «cURL» –
Afaik 'fsockopen' не работает, если' allow_url_fopen' отключен. Но почему бы не использовать «завиток»? – TiMESPLiNTER
Это потому, что мне нужно иметь аутентификацию, прежде чем я смогу получить доступ к изображению на внешнем сервере. У меня есть Google'd в течение нескольких дней, и я не могу получить пример, который работает с 'cURL'. Если у вас есть одно: тогда потрясающе! –