这个段代码主要是想实现把文件复制到某个指定文件夹里,同时把文件通过中转数据保存在数据库中。可是fis流中的数据没有读取到中转数据buffer中,不知道为什么
public String mailWriteAction(){
mail.setInfo(Hibernate.createClob(discription)); //给数据库中的clob字段赋值
String savePath=ServletActionContext.getServletContext().getRealPath("/upload/"+this.uploadFileName);//文件保存路径
byte[] buffer;//中转数组
try {
FileInputStream fis=new FileInputStream(upload);
FileOutputStream fos=new FileOutputStream(savePath);
IOUtils.copy(fis, fos);//复制文
buffer=new byte[fis.available()];
fis.read(buffer);//把fis流中的数据读取到数组buffer中(问题就出在这里,读取后buffer.length的值为0,也就是buffer中//没有数据)
System.out.println(buffer.length);
mail.setAccessory(Hibernate.createBlob(buffer));
fos.flush();
fos.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean flag=mailService.mailSave(mail);
if(flag==true){
return "success";
}else{
return "fail";
}
}
------解决思路----------------------
ioutils的copy方法把fis中的数据读完了?