我正在使用CURL从我们的服务器获取图像文件。检查浏览器的开发人员工具后,它表示返回的类型是'html'而不是'image'。
以下是回复:
/f/gc.php?f=http://www.norbert.com/get/image/BTS-005-00.jpg
GET 200 text/html 484.42 KB 1.68 s <img>
这是CURL脚本:
$ch = curl_init();
$strUrl = $strFile;
curl_setopt($ch, CURLOPT_URL, $strUrl);
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
curl_close($ch);
return $output;
我可以在CURL脚本中添加任何其他特定代码吗?
谢谢!
答案 0 :(得分:1)
您的PHP脚本正在执行cURL并返回没有特定图像标题的输出。
因此,默认情况下,浏览器会将数据检索为HTML内容。
尝试在返回输出之前添加更具体的标题。
尝试
header('Content-Type: image/jpg');
向浏览器指定脚本实际发送的内容类型。
如果您希望用户能够以文件形式下载,您还可以添加标题:
header('Content-Disposition: attachment; filename="' . $fileName . '";');
如果您要发送二进制内容,可以添加:
header("Content-Transfer-Encoding: binary");