0

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

谢谢!

4

1 回答 1

1

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

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

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

尝试

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

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

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

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

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

header("Content-Transfer-Encoding: binary");
于 2013-04-05T04:36:01.440 回答