maven开发ssh项目(struts2spring3hibernate3)【图片上传到数据库】

//偶尔遇见一次要求吧图片转成byte[]类型然后存到数据库的情况,数据里的图片类型是blob(一寸的那种头像)

//不然一般都是上传的服务器里然后将图片的链接存到数据库

//这里的方法其实也是可以放在别的框架(没框架也行)下用,关键是获取file这个参数,ssh也是要依赖于common的那两包的直接通过get,set就可以获得前面传来的文件,如果是servlet的话请参考https://blog.csdn.net/qq_34299694/article/details/80968899

这个是前端页面:

    <form action="infoInsert" method="post" enctype="multipart/form-data" validate="true">
            <table border="0" cellspacing="0" cellpadding="1">
                <tr>
                    <td>
                        <input type="text" name="xsb.xh" placeholder="学号" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="text" name="xsb.xm" placeholder="姓名" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <input id="man" type="radio" checked="checked" name="xsb.xb" value="1" />男
                        <input id="woman" type="radio"  name="xsb.xb" value="0"/>女
                    </td>
                </tr>
                <tr>
                <td>
                  <span>专业:</span>
                    <select name="xsb.zyb.id">
                    <c:forEach var="i" items="${list}"  varStatus="status">
                    <option  value="${i[1]}">${i[0] }</option>
                    </c:forEach>
                    </select>
                    </td>
                </tr>
                <tr>
                <td> 
                    <input  id="test1" name="xsb.cssj" placeholder="出生时间"  readonly="readonly"/>
                </td>
                </tr>
                <tr>
                    <td>
                        <input type="text" name="xsb.zxf" placeholder="总学分" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <input name="xsb.bz" placeholder="备注" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="file" name="file"  placeholder="照片" />
                    
                    </td>
                </tr>
            </table>
            <p>
                <input type="submit" value="添加" />
                <input type="reset" value="重置" />
        </form>

这个是对应的bean类:

public class Xsb {
    private String xh;
    private String xm;
    private byte xb;
    
    private Date cssj;
    private int zxf;
    private String bz;
    private byte[] zp;//这个就是图片属性
    private Zyb zyb;
    
    public Xsb(){
        
    }
    public Xsb(String xh,String xm,byte xb,Date cssj,int zxf,String bz,byte[] zp,Zyb zyb){
        this.xh=xh;
        this.xm=xm;
        this.xb=xb;
        this.cssj=cssj;
        this.zxf=zxf;
        this.bz=bz;
        this.zp=zp;
        this.zyb=zyb;
    }
    
    public String getXh() {
        return xh;
    }
    public void setXh(String xh) {
        this.xh = xh;
    }
    public String getXm() {
        return xm;
    }
    public void setXm(String xm) {
        this.xm = xm;
    }
    public byte getXb() {
        return xb;
    }
    public void setXb(byte xb) {
        this.xb = xb;
    }
    public Date getCssj() {
        return cssj;
    }
    public void setCssj(Date cssj) {
        this.cssj = cssj;
    }
    
    public int getZxf() {
        return zxf;
    }
    public void setZxf(int zxf) {
        this.zxf = zxf;
    }
    public String getBz() {
        return bz;
    }
    public void setBz(String bz) {
        this.bz = bz;
    }
    public byte[] getZp() {
        return zp;
    }
    public void setZp(byte[] zp) {
        this.zp = zp;
    }
    public Zyb getZyb() {
        return zyb;
    }
    public void setZyb(Zyb zyb) {
        this.zyb = zyb;
    }
}

这个是获取前端传来得图片:

private File file;

public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

public String studentInformationInsert(){
        
        FileInputStream fileInputStream=null;
  
            try {
                fileInputStream=new FileInputStream(file);
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
        try {
            byte[] buff=new byte[fileInputStream.available()];//这个可以获取文件流的长度不过最大只能是1.99g应为返回类型是int
            fileInputStream.read(buff);
            xsb.setZp(buff);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        xsbService.getXsbDao().save(xsb);
       
        return SUCCESS;
    
    }

猜你喜欢

转载自blog.csdn.net/qq_34299694/article/details/81103083