¹Ø¼ü×Ö£ºmysql jsp ͼƬ´æÈ¡
ΪÁËʹÓÃJSPÁé»î£¬ÐèÒª°Ñ¸÷ÖÖÎļþ´¢´æµ½Êý¾Ý¿âÖУ¬È»ºóÐèÒªµÄʱºò°ÑËü¶ÁÈ¡³öÀ´ÏÔʾµ½¿Í»§¶Ë¡£ÕâЩÎļþ°üÀ¨ÒôÀÖ£¬Í¼Æ¬£¬Îı¾µÈ£¬ÈËÃÇͳ³ÆÎª¶þ½øÖÆÎļþ¡£
Ê×ÏÈ£¬¶þ½øÖÆÎļþ´¢´æµ½Êý¾Ý¿âµÄ¹ý³Ì£º´ò¿ªÎļþ£¬½«ÄÚÈݶÁµ½»º³åÇø£¬È»ºóÖ±½ÓÁªÏß´´½¨jdbcÓï¾ä¶ÔÏó£¬Ê¹Óøûº³åÇøµÄÊý¾Ý£¬²¢Ö´ÐиüУ¬¾ÍÍê³ÉÁË´¢´æ¡£
Àý×Ó£º
Ê×ÏÈÔÚmysqlÖд´½¨Ò»¸ö±í picture_db
|
create table picture_db( file_name varchar(255) not null, content longblob, primary key (file_name));
|
½ÓÏÂÀ´¾ÍÊÇÓÃjavaд´¢´æÎļþµÄ´úÂ룺
¼ÙÉèÒª´¢´æµÄͼƬÃû³ÆÊÇ£º01.jpg (·ÅÔÚͬһ¸öĿ¼Ï£©
|
import java.sql.*; import java.io.*; import java.nio.*; public class UploadImage { protected Connection dbConnection; protected String driverName = "com.mysql.jdbc.Driver"; protected String dbURL = "jdbc:mysql://localhost:3306/sample_db"; protected String userID = "root"; protected String passwd = "yourpassword";
public boolean storeImage(String sqlstr,File file){ try{ FileInputStream fin = new FileInputStream(file); ByteBuffer nbf = ByteBuffer.allocate((int)file.length()); byte[] array = new byte[1024]; int offset =0,length=0; while((length=fin.read(array))>0){ if(length!=1024) nbf.put(array,0,length); else nbf.put(array); offset+=length; } fin.close(); byte[] content = nbf.array(); return setImage(sqlstr,content); }catch(FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } return false; } private boolean setImage(String sqlstr,byte[]in){ boolean flag = false; if(sqlstr==null) sqlstr="select * from picture_db"; try{ Class.forName(driverName); dbConnection = DriverManager.getConnection(dbURL,userID,passwd); Statement stmt = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery(sqlstr); if(rs.next()){ rs.updateBytes(2,in); rs.updateRow(); } else{ rs.moveToInsertRow(); rs.updateString(1,"01"); rs.updateBytes(2,in); rs.insertRow(); } rs.close(); flag=true;
}catch(Exception e){ e.printStackTrace(); } return flag; }
public static void main(String[] args){ UploadImage upload = new UploadImage(); try{ File file = new File("01.jpg"); if(upload.storeImage(null, file)) System.out.print("ture"); else System.out.print("False"); }catch(Exception e){ e.printStackTrace(); } } }
|
Èç¹ûÖ´Ðгɹ¦µÄ»°£¬ÏµÍ³´òÓ¡¡°true" ·ñÔò¡°false".
×îºó¾ÍÊǽ«Í¼Æ¬¶ÈÈ¡³öÀ´£ºÓë´¢´æµÄ¹ý³ÌÏà·´£¬ËüÊÇÏØ½¨Á¢Á¬½Ó£¬´´½¨Êý¾Ý¿â²éѯµÄjdbc¶ÔÏó£¬Ê¹ÓøÃÓï¾äÀ´·µ»Ø¶þ½øÖƽá¹û£¬±£´æµ½Îļþµ±ÖС£
showImage.jsp
|
<%@ page contentType = "image/jpeg;charset=GB2312"%> <%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%> <%@ page import="com.sun.image.codec.jpeg.*"%> <%@ page import="javax.imageio.*"%> <%@ page import="java.awt.image.*"%>
<html> <head> <meta http-equiv="Content-Type" content="image/jpeg;charset=GB2312"> <title>showDBImage</title> </head> <body> <% String showImage ="select * from picture_db where file_name ='01'"; Connection conn = null; BufferedInputStream inputImage = null;
String driverName = "com.mysql.jdbc.Driver"; String dbURL = "jdbc:mysql://localhost:3306/sample_db"; String userID = "root"; String passwd = "yourpassword";
try{ Class.forName(driverName).newInstance(); conn = DriverManager.getConnection(dbURL,userID,passwd);
Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(showImage); while(rs.next()){ Blob blob = (Blob)rs.getBlob("content"); inputImage = new BufferedInputStream(blob.getBinaryStream()); }
BufferedImage image = null; image = ImageIO.read(inputImage); ServletOutputStream sos = response.getOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos); encoder.encode(image); inputImage.close(); }catch(SQLException e) { e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } %> </body> </html>
|
²»×ãÖ®´¦ÔÚÓÚ£ºÃ¿´ÎÖ»ÄÜ´¢´æÒ»ÕÅͼƬ£¬ºÃÏñ»¹²»ÄÜ´¢´æÁ½ÕÅͼƬ£¬Ëü×ÜÊǸ²¸ÇµôÇ°ÃæµÄÄÇÒ»Õż´Ê¹Í¼Æ¬µÄÎÄ×Ö²»Ò»Ñù¡£Èç¹û¸ÐÐËȤµÄÅóÓÑ£¬°ïÎÒ²âÊÔÒÔÏ¡£Ð»Ð»¡£»¹ÓУ¬Èç¹ûÎÒÏë´¢´æ¶àÕÅͼƬ£¬¸ÃÈçºÎÄØ£¿