上传文件到MySQL数据库Blob字段 内容多了两个字节

aaa_bbb0123 aaa_bbb0123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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两个字节


困扰我几天了,请大家帮忙看看,到底是什么回事?
...全文
评论 11
收藏 已收藏
分享
返回顶部
aaa_bbb0123
Java EE 67,535 成员 225,843 内容