微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SSH+SQLServer2005图片文件上传及页面显示

作为一个常用的功能,自己做个笔记,免得到时候又找百度

1、图片文件上传,这个和普通文件上传是一样的,从页面选择图片文件到数据传至Action的操作,之前的日记中已经说明过,不再赘述,主要说怎样将图片文件存入数据库以及从数据库中读出来显示页面的问题。

2、图片文件存入数据库,@R_502_6308@Server2005数据库中字段定义为:image,oracle中可以使用blob类型,MysqL中可以使用blob或者longblob等类型。

  2.1、图片实体类定义: 

    @Entity
    @Table(name = "OBJ_PHOTO")
    public class Photo extends DomainObject {
        @Column(name = "photoName",nullable = false)
        private StringphotoName;

        @Column(name = "photoAddr",nullable = false)
        private byte[]photoAddr;  // 图片文件定义为byte[]

        // get和set方法。。。。
    }

 2.2、将图片存入数据库

    Photophoto = newPhoto();
    InputStream in = null;
    if (StringUtils.isNotEmpty(formBean.getPhotoAddrFileName())) {
        try {
            byte buffer[] = new byte[(int)formBean.getPhotoAddr().length()];
            in = new FileInputStream(formBean.getPhotoAddr());
            in.read(buffer);
            photo.setPhotoAddr(buffer);
        } catch (FileNotFoundException e) {
            e.printstacktrace();
        } catch (IOException e) {
            e.printstacktrace();
        }
    }
    photo.setPhotoName(formBean.getPhotoName());
    photoDao.save(photo);

  3、图片存入数据库之后如何显示页面上:

  3.1、首先在Action中定义一个InputStream对象:

   private InputStream imagStream;

   // get和set方法。。。

  3.2、Action中定义一个方法

   public String getPhoto(){
       String id = request.getParameter("id");
       Photo Photo= mapService.getMapById(id); 
       return "photoImag";

   }

    3.3、struts.xml文件配置:

    <result name="photoImag" type="stream">
        <param name="contentType">image/jpeg,image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param>
        <param name="inputName">imagStream</param>
    </result>

    3.4、jsp页面如何显示图片

   <img id="preview" src="photoAction!getPhoto.action?id=<s:property value='id'/>" /> // 此处传入该图片文件的ID,调用Action中的方法getPhoto即可在页面显示图片

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐