加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex + java + orcale 存取Image

发布时间:2020-12-15 00:57:05 所属栏目:百科 来源:网络整理
导读:? 最近有个小东西是关于Flex +java + orcale 在页面显示Image,刚开始时一筹莫展
?

最近有个小东西是关于Flex +java + orcale 在页面显示Image,刚开始时一筹莫展啊。。。行了不罗嗦,进主题。

首先:确定一下设计的思路,能够获取本地image,同时存到orcale中,然后可以从数据库中读取。

1 获取本地image;

?import flash.display.BitmapData;

?private var fr:FileReference;
???private var imageTypes:FileFilter;?
???private function init(event:Event):void
???{
????fr=new FileReference();
????imageTypes=new FileFilter("Images (*.jpg,*.jpeg,*.png,*.gif)","*.jpg; *.jpeg; *.png; *.gif;");
????//增加当打开浏览文件后,用户选择好文件后的listener
????fr.addEventListener(Event.SELECT,selectHandler);
???}
???
???private function selectHandler(event:Event):void
???{
????//增加一个文件加载load完成后的listener
????fr.addEventListener(Event.COMPLETE,onLoadComplete);
????fr.load();//加载用户选中文件
????
???}
???private var pbitData:BitmapData;
???private function onLoadComplete(event:Event):void
???{
????imgPhoto.source = fr.data;?
????var num:int = selectedUserNum;
??? RoUserSet.saveImg(fr.data,num);//here ,i can save this image to orcale,The RemoteObject has been?used .
???}
???private function browseHandler(event:Event):void
???{
????fr.browse([imageTypes]);
???}

这里要指出的一点是:在浏览中打开的图片image 已经是 一种编码格式,具体我也不太了解这种编码是什么格式的,而且我在存到数据库的时候并不是存的图片的路径,而是存的编码,因为保存路径的话,如果图片丢失了,就会回去不到图片。这个编码相当于rgb吧。。。

2 存到数据库java端

dao 文件

public void saveImg(byte[] sigimg,int usernum);

daoImpl文件

public void saveImg(byte[] sigimg,int usernum)
?{
??userSet.setUsernum(usernum);
??userSet.setSigimg(sigimg);
??getSqlSession().update("com.cons.pmconf.deptUserMNG.model.UserSet.updateImg",userSet);
?}

?action 文件

public void saveImg(byte[] sigimg,int usernum)
?{
?? this.userSetDAO.saveImg(sigimg,usernum);
?}

sql 语句

<update id="updateImg" parameterType ="com.cons.pmconf.deptUserMNG.model.UserSet" >
???update tbusers set sigimg = #{sigimg} where usernum = #{usernum}
??</update>

3 后台从数据库获取图片 返回一个Obj,在前台从这个Obj中再获取image的编码。

dao 文件

public Object getImage(int usernum)
?{
??return?? userSetDAO.getImage(usernum);
?}

daoImpl文件

public Object getImage(int usernum )
?{
??userSet.setUsernum(usernum);
??Object obj = getSqlSession().selectOne("com.cons.pmconf.deptUserMNG.model.UserSet.getImage",usernum);
??return (obj == null) ? null : obj;
?}?

action 文件

public void saveImg(byte[] sigimg,usernum);
?}

sql 语句

<select id="getImage" parameterType="com.cons.pmconf.deptUserMNG.model.UserSet"? resultType="sigimg" >
???select sigimg from tbusers where usernum = #{usernum}
??</select>

4 前台获取后台返回的Obj

?private var imageBit:ByteArray = new ByteArray(); ???private function getImageRHandler(event:ResultEvent):void ???{ ????var obj:Object = null; ????obj = event.result as Object; ????if(obj == null) ?????this.imgPhoto.source = "com/cons/modules/deptUserMNG/images/NoSigImg.PNG";//赋予一个默认的图片,防止数据库中没有图片信息的时候出现错误。 ????else ????{ ?????imageBit = obj.img; //img是数据库中的字段名称 ?????this.imgPhoto.source = imageBit; ????} ???}

? 以上4个步骤就可以解决这个问题了。希望对大家有用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读