使php生成的图像被视为文件

时间:2014-07-30 09:42:23

标签: php image file

我有这段代码来显示存储在公共网络文件夹之外的图像。

$result2 = mysqli_query($iddb, "SELECT url, extension FROM imagenes WHERE id=$id");
if ($row2=mysqli_fetch_array($result2, MYSQLI_BOTH))
    {   
        $ruta_archivo = $row2['url'];
        $extension =$row2['extension'];
        $filePath=$ruta_outside.$ruta_archivo;
        {
            $image = file_get_contents($filePath);
        }   
    }
header('Content-Type: image/.$extension.');
echo $image;

我可以在html标签中调用它,如下所示,它可以工作。

<img src='http://my_domain.com/content_image.php?id=11' height='40' width='40'/>

但是,当我在Facebook上分享我的网页时,它无法作为图片找到。我使用了og:标签,但是没有将其识别为图像。

您是否有想法将信息提供给客户端,因此它将其理解为以文件名结尾的URL?喜欢

http://my_domain.com/imagenid11.jpg

由于

1 个答案:

答案 0 :(得分:0)

你想要做的是网址重写。如果您正在使用Apache,请使用apache扩展mod_rewrite。如果您正在使用nginx,请使用重写。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

您应该将header('Content-Type: image/.$extension.');更改为header('Content-Type: image/'.$extension);