create table image( content varchar(10) , image varchar(50) );
testimage.jsp
String url= "jdbc:mysql://localhost:3306/school";
Connection conn= DriverManager.getConnection(url,"root","root");
String sql = "select image from image where content='1.jpg'";
Statement stmt=null;
ResultSet rs=null;
response.setContentType("application/jpg");
response.setHeader("Content-disposition","attachment;filename=sample.jpg");
out.clearBuffer();
out = pageContext.pushBody();
ServletOutputStream sout = response.getOutputStream();
BufferedInputStream buf=null;
FileInputStream in=null;
File file=null;
try{
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
String path=rs.getString("image");
file=new File(path);
in=new FileInputStream(file);
buf=new BufferedInputStream(in);
int bytes=0;
while((bytes=in.read())!=-1){
sout.write(bytes);
}
}
conn.close();
stmt.close();
}catch(SQLException e){
System.out.println(e);
}
catch(IOException e){
System.out.println("Ing!");
}finally{
if(sout!=null)
sout.close();
if(buf!=null)
buf.close();
}
%>
testimage.html:
Image File
本人亲测,可行!结果如上:
当然要完成一次插入多个图片也就好办了:(如下 ,完成插入4张图片)
数据库image内容:
------------------------------------
content image
------------------------------------
1.jpg C:\images\1.jpg
2.jpg C:\images\2.jpg
3.jpg C:\images\3.jpg
4.jpg C:\images\4.jpg
------------------------------------
while(i<5){
String srcstring="http://localhost:8080"+request.getContextPath()+"/testimageout.jsp?id="+Integer.toString(i); %>
这时只要在testimageout.jsp页面中获取一个参数即可:
String id=request.getParameter("id");
String sql = "select image from image where content like '"+id+"%'";
效果如下: