上传文件到MySQL数据库Blob字段 内容多了两个字节
struts2+spring+hibernate+tomcat+mysql
将上传文件的内容保存到mysql数据库的blob字段中时会多出两个字节,请大家帮我分析一下原因
Action中代码:
InputStream inputStream=new FileInputStream(upload); //以字节方式读入数据
byte[] b = new byte[inputStream.available()];
System.out.println(inputStream.available());
inputStream.read(b); //读入了64个字节
inputStream.close();
java.sql.Blob keyBlob=Hibernate.createBlob(b); //读入了64个字节
tempUdisk.setuKey(keyBlob); //将字节数组转换为Blob类型
userService.saveUDiskKey(tempUdisk);
hibernate数据库的设计:
private java.sql.Blob uKey;
public void setuKey(java.sql.Blob blob) {
this.uKey = blob;
}
public java.sql.Blob getuKey() {
return uKey;
}
映射文件的设置:
<property name="uKey" type="java.sql.Blob" length="100" not-null="true" />
Spring 数据库连接的设置:
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/WebApplication?useUnicode=true&characterEncoding=gbk"/>
mysql数据库是gbk编码方式
上传文件的内容(UltraEdit查看): 64个字节
DC 12 4F E8 16 9C 71 B3 DA AC 16 F8 22 CB E5 FA ; ?O?渜弛??隋?
BC DB 57 76 EB E5 86 DC E3 B6 9C E1 8B 48 A2 40 ; 价Wv脲嗆愣溼婬
DD 94 DE 2B 39 02 78 A1 78 CC 82 AA EA 3D 4D DA ; 輸?9.x虃=M?
F4 E0 B4 E4 EB FD 04 63 4B 00 88 BC 2C 5D 19 E1 ; 羿翠臊.cK.埣,].
数据库中的内容: 66个字节
DC 12 4F E8 16 9C 71 B3 DA AC 16 F8 5C 5C 22 CB E5 FA
BC DB 57 76 EB E5 86 DC E3 B6 9C E1 8B 48 A2 40
DD 94 DE 2B 39 02 78 A1 78 CC 82 AA EA 3D 4D DA
F4 E0 B4 E4 EB FD 04 63 4B 00 88 BC 2C 5D 19 E1
相对于原始的文件内容多了5c 5c两个字节
困扰我几天了,请大家帮忙看看,到底是什么回事?