用的是MYSQL……
网上稍微搜索了一下,有人说是用BLOB这种类型存储图像;然后之前问过学长,是存储图片的路径……有没有人实际做过东西,给点指点呢?谢谢了!

解决方案 »

  1.   

    一般是保存路径,图片保存在文件夹里
    数据库里用一字段存储图片在站点相对位置(如果是本站图片)或url(外网上图片);php读取数据库取出路径,如站点下images文件夹的img.gif图片即imgages/img.gif(数据库里全部存储此路径),然后组成完整图片src,$picsrc = http://www.website.com/imgages/img.gif-----即域名地址+取出来的相对路径。外网图片的话,就直接是url了。
    前台显示 <img alt=$picalt width="191" height="104" src=$picsrc}
      

  2.   

    若无服务器端写入权,就只能保存在数据库中了(比如早期的asp服务器为安全起见都关闭了文件系统功能)
    否则可根据图片的数量和访问的频繁程度在两者中取舍
      

  3.   

    images 表结构:id int 主键 递增
    image longblob
    size int以下是Yii框架下的两段代码:    //储存图片
        public function action1()
        {
            $command = Yii::app()->db->createCommand('set GLOBAL max_allowed_packet=10*1024*1024*1024');
            $command->execute();
            
            $imgpath = 'D:/1.bmp';        $sql = 'insert into Images(image, size) values(:image, :size)';
            $size = filesize($imgpath);
            
            $imgfp = fopen($imgpath, 'rb');
            $data = fread($imgfp, $size);
            fclose($imgfp);        $command = Yii::app()->db->createCommand($sql);
            $command->bindParam('image', $data, PDO::PARAM_LOB);
            $command->bindParam('size', $size, PDO::PARAM_INT);
            echo $command->execute();
            fclose($imgfp);
        }    //显示图片
        public function action2()
        {
            $sql = 'select image, size from Images';
            $command = Yii::app()->db->createCommand($sql);
            $reader = $command->query();
            $row = $reader->read();        $imgfp = fopen('D:/2.bmp', 'w');        fwrite($imgfp, $row['image'], intval($row['size']));        fclose($imgfp);
        }
      

  4.   

    不是所有的图片都要存储到数据库里面的.
    这个看需要.要考滤到性能的问题.还有上面的代码中多了一个 fclose($imgfp);
    楼主要用的话要去掉.
      

  5.   

    再给换个ORM的    //储存图片
        public function action1()
        {
            $command = Yii::app()->db->createCommand('set GLOBAL max_allowed_packet=10*1024*1024*1024');
            $command->execute();
            
            $imgpath = 'D:/1.jpg';        $size = filesize($imgpath);        $imgfp = fopen($imgpath, 'rb');
            $data = fread($imgfp, $size);
            fclose($imgfp);        $jpg = new Images();
            $jpg->image = $data;
            $jpg->size = $size;
            $jpg->save();        echo 'ok';
        }    //显示图片
        public function action2()
        {
            $rows = Images::model()->findAll();        $row = $rows[0];        $imgfp = fopen('D:/2.jpg', 'w');        fwrite($imgfp, $row->image, $row->size);        fclose($imgfp);
        }