项目中,需要保存上传的图片到数据库中。项目使用的框架是spring+webwork+velocity+hibernate。上传图片后,需要将图片文件File类型转换成Blob类型。
代码写完后,在测试中,总提示hibernate的一个错误提示信息,具体没有记录下来,大概是报一个IO错。
经过检查,问题出在了转换代码中。
try {
InputStream in = new FileInputStream(image);
specialTopicVideo.setImage(Hibernate.createBlob(in));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(in != null){
try{
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
去掉该代码中的:in.close();语句,则执行正常,不再报错。
一般使用中,需要关闭InputStream 。不知道为什么,这种情况下不能关闭。
问题暂时解决了,但没有弄清楚为什么。
代码写完后,在测试中,总提示hibernate的一个错误提示信息,具体没有记录下来,大概是报一个IO错。
经过检查,问题出在了转换代码中。
try {
InputStream in = new FileInputStream(image);
specialTopicVideo.setImage(Hibernate.createBlob(in));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(in != null){
try{
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
去掉该代码中的:in.close();语句,则执行正常,不再报错。
一般使用中,需要关闭InputStream 。不知道为什么,这种情况下不能关闭。
问题暂时解决了,但没有弄清楚为什么。