从MySQL显示几个BLOB图像的问题

时间:2014-09-10 08:15:35

标签: php mysql blob

我有这个PHP代码应该显示来自MySQL数据库的一些BLOB图像:

<?php
    while ($articulo = mysql_fetch_array($resultados)) 
    {
        ?>
        <div class="categoria">
                <a href="catalogo.php?categoria_serial=<?php echo $articulo['categoria_serial'];?>">
                    <img src="imagenCategoria.php?categoria_serial=<?php echo $articulo['categoria_serial'];?>&ancho=280" alt="">
            </a>
            <div class="descripcion">
                <p><?php echo $articulo['categoria_nombre'];?></p>
            </div>
        </div>
        <?php
    }
?>

问题是,并非每个图像都显示在页面中。一些图像随机加载。如果我刷新页面,会出现一些丢失的图像,但是一些正确的图像会消失。

这是每张图片的代码:

<?php
    include 'controller/_init.php'; 
    $db = conectar();
    $desired_width = $_GET["ancho"];;
    $categoria_serial = $_GET["categoria_serial"];
    $resultados = mysql_query("SELECT categoria_imagen FROM categoria WHERE categoria_serial = $categoria_serial") or die("Error");
    $articulo=mysql_fetch_array($resultados);
    $im = imagecreatefromstring($articulo['categoria_imagen']);
    $x = imagesx($im);
    $y = imagesy($im);
    $desired_height = $desired_width*$y/$x;
    $new = imagecreatetruecolor($desired_width, $desired_height);
    imagecopyresampled($new, $im, 0, 0, 0, 0, $desired_width,$desired_height, $x, $y);
    imagedestroy($im);
    header('Content-type: image/jpeg');
    imagejpeg($new, null, 85);
    exit;
?>

有任何线索吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

可能是内存问题 - 为刷新时创建每个图像分配内存......这是一种非常糟糕的做法。

您可以尝试将图像保存到某处或至少缓存它们,这样您就不必在每次刷新时都使用创建图像的所有步骤。