【问题标题】:Curl on an image returning text/html instead of image/jpeg在返回 text/html 而不是 image/jpeg 的图像上卷曲
【发布时间】:2011-06-27 18:23:52
【问题描述】:

我创建了一个脚本来使用 CURL 从 URL 加载图像。为了测试该文件是否为 JPG,我使用了 ($info['content_type'] == 'image/jpeg')。 它适用于大多数 url,但有些返回 html 类型:例如 http://www.super-fond.fr/IMAGES_VOITURES/lexus/2005-Lexus-LF-A-Concept-R-1280x960.jpg 谁能告诉我为什么这个 URL 是 html ?

谢谢

【问题讨论】:

  • 唯一可以肯定的告诉你的是super-fond.fr的所有者,因为这是服务器配置问题。我怀疑浏览器也会查看扩展名来确定文件类型,这就是他们可以看到它的原因......
  • 发布你的 CURL 步骤的源代码
  • HTML 的内容是什么?它可能只是说图像上不允许热链接。
  • 我不知道为什么,但是如果你收到一个text/html,你可以使用imagecreatefromstring($string)来检查它是否是一个图像。
  • 实际上,查看该特定图像,它似乎发送了正确的内容类型,所以我不确定......

标签: php curl


【解决方案1】:

这是因为您没有在请求标头中设置用户代理,并且此主机拒绝使用特定用户代理的请求。

有关如何设置用户代理,请参阅 curl_setopt() 中的 CURLOPT_USERAGENT

curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla');

【讨论】:

  • 应该可以解决。在命令行上使用 CURL 检查,-A Mozilla 提供 200 OK 而不是 403 Forbidden。
猜你喜欢
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多