我正在尝试使用fsockopen
PHP 从外部服务器获取图像。我需要在我的代码中将图像数据放入 BASE64 编码的变量中。该图像是 .jpeg 文件类型并且是一个小图像。
经过一番搜索,我在谷歌上找不到任何答案。所以我想知道如果没有奇怪的解决方法,它是否甚至可以直接实现?
非常感谢任何帮助和/或建议!
请注意,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);
}