public void insertImgToDb() { try { PreparedStatement stmt = this.conn.prepareStatement("insert into test (imgtest) values(?)"); File file = new File("d:\\a.JPG");
FileInputStream input = new FileInputStream(file); stmt.setBinaryStream(1, input,input.available());
对流进行处理就行了
(此方法的作用是根据传入的用户名,查询对应用户的照片,然后输出!)
public void getImage(String name,HttpServletRequest request,
HttpServletResponse response) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
con = ds.getConnection();
st = con.createStatement();
rs = st.executeQuery("select P_photo from personnel where P_name='"+name+"'");
if (rs.next()) {
in = rs.getBinaryStream(1);
response.reset();
response.setContentType("image/jpg"); //设置响应方式为图片形式
OutputStream toClient = null;
try {
toClient = response.getOutputStream();
byte[] P_Buf = new byte[len];
int i;
while ((i = in.read(P_Buf)) != -1) {
toClient.write(P_Buf, 0, i);
}
in.close();
toClient.flush();
toClient.close();
} catch (IOException ex1) {
ex1.printStackTrace();
}
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
this.closeResultSet(rs); //因为采用Tomcat连接池技术,所以连接结束后关掉连接!
this.closeStatement(st);
this.closeConnection(con);
}
}
其实就是一个PreparedStatement类的应用。
把我昨天写的例子照拿过来
希望对你有帮助import java.io.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;public class imageServlet extends HttpServlet { /**
* Constructor of the object.
*/
Connection conn = null;
public imageServlet() {
super();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
this.conn = DriverManager.getConnection("jdbc:odbc:test");
} catch (Exception e) {
e.printStackTrace();
}
}
public void insertImgToDb() {
try {
PreparedStatement stmt = this.conn.prepareStatement("insert into test (imgtest) values(?)");
File file = new File("d:\\a.JPG");
FileInputStream input = new FileInputStream(file);
stmt.setBinaryStream(1, input,input.available());
//input.close();
stmt.executeUpdate();
stmt.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public BufferedImage getImgFromDb() {
BufferedImage image = null;
try {
PreparedStatement stmt = conn.prepareStatement("select imgtest from test");
ResultSet rs = stmt.executeQuery();
rs.next();
image = ImageIO.read(rs.getBinaryStream(1));
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return image;
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("image/jpeg");
this.insertImgToDb();
BufferedImage img = this.getImgFromDb();
ImageIO.write(img, "JPG", response.getOutputStream());
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doGet(request, response);
} public void init() throws ServletException {
// Put your code here
}}