java + mysql + jdbc实现图片上传
2016-10-08 18:30
387 查看
首先在数据库中用mediumblob来保存图片的位置
Mysql中可以存储大文件数据,一般使用的BLOB对象。如图片,视频等等。
BLOB是一个二进制大对象,可以容纳可变数量的数据。因为是二进制对象,所以与编码方式无关。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
四种字段类型保存的最大长度如下:
TINYBLOB - 255 bytes
BLOB - 65535 bytes(64KB)
MEDIUMBLOB - 16,777,215 bytes(16MB) (2^24 - 1)
LONGBLOB - 4G bytes (2^32 – 1)
创建数据库表
CREATE TABLE p (
id int,
photo mediumblob
);随后进行链接数据库 将图片的路径读取到后 转化成二进制流文件后 进行上传
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){
e.printStackTrace();
}
Connection conn = null;
String jdbcPath = "jdbc:mysql://localhost:3306/photos";
String user = "root";
String pass = "";
PreparedStatement ps = null;
ResultSet rs = null;
InputStream in = null;
try {
conn = DriverManager.getConnection(jdbcPath,user,pass);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ps=con.prepareStatement("select * from test.phototest where id=?");
24 ps.setInt(1,2);
25 rs=ps.executeQuery();
26 rs.next(); //将光标指向第一行
27 in=rs.getBinaryStream("photo");
28 byte[] b=new byte[in.available()]; //新建保存图片数据的byte数组
29 in.read(b);
30 OutputStream out=new FileOutputStream("222.jpg");
31 out.write(b);
32 out.flush();
33 out.close();这样即可
Mysql中可以存储大文件数据,一般使用的BLOB对象。如图片,视频等等。
BLOB是一个二进制大对象,可以容纳可变数量的数据。因为是二进制对象,所以与编码方式无关。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
四种字段类型保存的最大长度如下:
TINYBLOB - 255 bytes
BLOB - 65535 bytes(64KB)
MEDIUMBLOB - 16,777,215 bytes(16MB) (2^24 - 1)
LONGBLOB - 4G bytes (2^32 – 1)
创建数据库表
CREATE TABLE p (
id int,
photo mediumblob
);随后进行链接数据库 将图片的路径读取到后 转化成二进制流文件后 进行上传
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){
e.printStackTrace();
}
Connection conn = null;
String jdbcPath = "jdbc:mysql://localhost:3306/photos";
String user = "root";
String pass = "";
PreparedStatement ps = null;
ResultSet rs = null;
InputStream in = null;
try {
conn = DriverManager.getConnection(jdbcPath,user,pass);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try { //从本地硬盘硬盘读取一张图片保存到数据库 in =new FileInputStream("D:/img1.jpg"); ps=conn.prepareStatement("insert into photos.p values(?,?)"); ps.setInt(1,2); ps.setBinaryStream(2, in, in.available()); ps.executeUpdate(); in.close(); }catch(SQLException e){ }进行上传即可 将图片进行读出 需要指定图片读出后的位置和和将图片读出后制定的路径
ps=con.prepareStatement("select * from test.phototest where id=?");
24 ps.setInt(1,2);
25 rs=ps.executeQuery();
26 rs.next(); //将光标指向第一行
27 in=rs.getBinaryStream("photo");
28 byte[] b=new byte[in.available()]; //新建保存图片数据的byte数组
29 in.read(b);
30 OutputStream out=new FileOutputStream("222.jpg");
31 out.write(b);
32 out.flush();
33 out.close();这样即可
相关文章推荐
- JAVA技术实现上传图片水印效果
- java+mysql中保存图片及显示上传的图片struts+hibernate
- java+mysql中保存图片及显示上传的图片struts+hibernate
- 使用MYSQL、PHP和FLEX实现上传图片,动态在DataGrid中添加下载按钮和上传的图片.
- 图片实现上传的java类
- 如何实现图片的上传以及将图片保存到Mysql
- Java实现MySQL图片存取操作
- Java实现Mysql的jdbc连接例子
- 实现为用java访问mysql的blob—对图片进行存取
- java struts中实现上传多张图片代码
- 11级_Java_曹建波 9.13 Tcp实现上传文件和图片
- 在Java中实现TCP协议编程续之实现文本和图片的上传代码
- JAVA实现图片下载至本地,处理后,再上传FTP
- JAVA实现图片下载至缓存处理后,再上传FTP
- Java实现Mysql的jdbc连接例子
- Java实现Mysql的jdbc连接例子
- java图片上传后台实现以及删除时删除目录
- Java实现MySQL图片存取操作 .
- java实现图片上传
- 【java源码】jdbc实现增查删改<Mysql>