column设置为bytea.然后把图片读入内存,用byte写入。这个比较简单。还有一个大对象的办法,我觉的备份麻烦,没用过。

解决方案 »

  1.   

    方法很简单,你先把你要存的图片读到字符流中,再将字符流中的字符串内容用Base64编码,然后就可以存入bytea字段中啦!取的话方法相反。不过bytea字段有时候会截断内容,很恶心!所以我只好用varchar了,只不过还要再对字符串压缩一下。好了祝你好运!:)
      

  2.   

    还是用大对象方便,当然备份的时候要把它给备份出来比较麻烦。大对象的方便之处就是可以存储比较大的元组如音频、视频文件,否则要用到toast,一样麻烦。可以这样做:
    create table tblname(pic_colname oid,...,);
    插入图片用
    insert into tblname values(lo_import($pic_path),...,);
    取图片:select lo_export(pic_colname, $pic_save_path) from tblname where .....;
    要把图片放入linux下的某临时文件中,取出是也是一样的道理!