WEB页面是用PHP写的,将图片以二进制的方式保存在数据库中,现在要在页面上显示出来,怎么写呢,求高人指教,坐等。

解决方案 »

  1.   

    //先设置http header,然后把二进制数据输出就可以了:
    <?
    header("Content-type: image/gif");//如果是jpeg,bmp等,请替换gif
    echo $b;//$b为二进制数据
    ?>
      

  2.   

    用 src = “二进制数据” 就可以了
      

  3.   

    把图片二进制数据存入Mysql
    把图片文件整个都存进Mysql中,其实不是一个解决问题的明智方法——至少我不认为这是明智的。因为数据库的费用远远要大于基本文件存储空间的费用,看看各个空间提供商的价格表你就明白了。另外把图片做为二进制数据存入数据库,使图片几乎没有可以维护的途径,当然你可以删除它——这是数据库的强项!其实这里有一个大家都使用的方法,你完全可以使用:
    上传图片到你的服务器空间——这个很简单;
    在数据库中只存储一个字符串,来表示这个图片的在你服务器上的路径。这是一个简单的方法,也是通常人都会使用的方法——也是PHPias推荐的方法。当你知道了把图片以二进制存储进Mysql的不足和那个大家都使用的方法之后,你依然决定要把它存进数据库,或者你真的有特殊的需要的话,你可以利用下边的方法把你的图片以二进制方式存进你的昂贵的Mysql。<html>
    <head><title>将二进制数据存储进Mysql</title></head>
    <body>
    <?php
    if ($submit) {
         //笔者假设你的mysql链接没有问题
       //下边的一行代码是问题的关键,我们称他为“A处”,以便下边讲解
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
     
    $sql="INSERT INTO databasename (bin_data) ".
            "VALUES ('$data')";
        $result=MYSQL_QUERY($sql);
    } else {
    ?>
        <form method="post" action="<?php echo $PHP_SELF; ?>" 
    enctype="multipart/form-data">
        File Description:<br>
        <input type="text" name="form_description"  size="40">
        <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
        <br>File to upload/store in database:<br>
        <input type="file" name="form_data"  size="40">
        <p><input type="submit" name="submit" value="submit">
        </form>
     
    <?php
    }
    ?>
    </body>
    </html>
    注释中已经说过,A处代码是关键的地方,我们来翻译一下,
    addslashes(fread(fopen($form_data, “r”), filesize($form_data)))
    读取整个以只读方式打开的,表单上传上来的文件,并addslashes利用进行转义,这样$data就是一个值为图片二进制代码的变量了,这样就可以想插入其他变量一样插入数据库了。其实也很简单,是不是!问题就是这样,当你找到方法之后,你才发现不过如此而已!