从浏览器中获取“html”类型而不是“图像”

时间:2013-04-05 04:32:22

标签: php javascript curl

我正在使用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脚本中添加任何其他特定代码吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您的PHP脚本正在执行cURL并返回没有特定图像标题的输出。

因此,默认情况下,浏览器会将数据检索为HTML内容。

尝试在返回输出之前添加更具体的标题。

尝试

header('Content-Type: image/jpg');

向浏览器指定脚本实际发送的内容类型。

如果您希望用户能够以文件形式下载,您还可以添加标题:

header('Content-Disposition: attachment; filename="' . $fileName . '";');

如果您要发送二进制内容,可以添加:

header("Content-Transfer-Encoding: binary");