//偶尔遇见一次要求吧图片转成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;
}