java sql怎么存取图片_java sql server 2000存取图片 - 笨小孩..........................................................

上次我介绍了mysql数据库中存取图片的方法,详见:

正好这几天又用到了sql server 2000数据库,然而在sql 2000中存取图片和mysql中大部相同,但是思想是一样的,都是在数据库中存二进制,但是还有一种解决方案,就是可以再数据库中存取图片的路径,这样比较简单,我就不介绍了,为了安全起见,还是把图片保存到数据库中了.

首先注意在mysql中存的字段类型是 blob类型,而在sql 2000中则用image类型,具体步骤见下:

上传页:upload.jsp

头像上传:

姓名:
上传图片:(上传后不可修改)

处理的servlet:ImageServlet

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");

PrintWriter out=response.getWriter();

String name=request.getParameter("name");

String path=request.getParameter("photo");

int len;

String query;

PreparedStatement pstmt;

Connection conn=null;try{

ConnectSqlserver connectSqlserver=new ConnectSqlserver();

conn=connectSqlserver.openConnection();

File file=new File(path);

FileInputStream fis=new FileInputStream(file);

len=(int)file.length();

query=("insert into applys(name,photo) VALUES(?,?)");

pstmt=conn.prepareStatement(query);

pstmt.setString(1,name);//Method used to insert a stream of bytes

pstmt.setBinaryStream(2, fis, len);

pstmt.executeUpdate();

}catch(Exception e){

e.printStackTrace();

}

out.flush();

out.close();

}

显示图片的servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

Connection conn=null;

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");//PrintWriter out=response.getWriter();

byte[] fileBytes;

String query="";try{

ConnectSqlserver connectSqlserver=new ConnectSqlserver();

conn=connectSqlserver.openConnection();

query="select photo from applys where name = 'feng'";

Statement state=conn.createStatement();

ResultSet rs=state.executeQuery(query);if(rs.next())

{

fileBytes=rs.getBytes("photo");

System.out.println(fileBytes);//OutputStream targetFile=new FileOutputStream("d://new.JPG");

ServletOutputStream targetFile=response.getOutputStream();

targetFile.write(fileBytes);

targetFile.close();

}

}

catch (Exception e)

{

e.printStackTrace();

}//out.flush();//out.close();

}

显示图片的jsp:view.jsp

ShowServlet?name=feng

ref:

write by feng

posted on 2009-06-02 15:10 fl1429 阅读(1247) 评论(1)  编辑  收藏 所属分类: Jsp/Servlet/Javabean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值