如何将存到数据库的附件下载下来如何将存到数据库的附件下载下来
如何读取数据库中的字节数据附件
1. 直接读取成⼀个byte[]数组.然后通过封装好的⼯具类将存储在数据库的附件下载下来;
2. 直接读取成⼀个InputStream⽂件流;
⼯具类
1. 将byte[]数组转成⽂件的⼯具类
public static boolean getPicFromStreams(byte[] bytes,String path){
try{
FileOutputStream fos =new FileOutputStream(path);
fos.write(bytes);
fos.flush();
fos.close();
return true;
}catch(IOException e){
e.printStackTrace();
}
return false;
}
2. 直接读取成流的⼯具类
public InputStream downloadDataFile(String insId)throws SQLException {
Connection conn =  Connection();
InputStream inputStream = null ;
String sql ="";
PreparedStatement pstmt;
pstmt =(PreparedStatement)conn.prepareStatement(sql);
pstmt.setString(1,insId);
ResultSet rs = uteQuery();
()){
inputStream = rs.getBinaryStream(1);
}
return inputStream;
}
2.1 该⽅法可以读取mysql库中Blob类型的数据,转换为InputStream类型的流;顺便记录⼀下, MySQL有四种BLOB类型:
·tinyblob:仅255个字符
·blob:最⼤限制到65K字节
·mediumblob:限制到16M字节
·longblob:可达4GB
html如何下载
2.2 读取sqlserver库中的varbinary类型存储⼆进制数据;
存储单位是Byte
总结
平时开发过程中不建议将⽂件信息存储到数据库中;
1. ⼤字段影响sql查询效率;
2. 占⽤数据库空间
3. 备份压⼒⼤
4. ⽂件不直观,查看和下载都需要依赖程序
5. 相对于ftp存储⽂件更安全

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。