mysql数据库连接测试成功,但进入页面就无法显示图片,
<%@page import="ytl.DBUtil"%><%@ page contentType="text/html; charset=gbk" %> 
<%@ page import="java.io.*"%> 
<%@ page import="java.sql.*, javax.sql.*" %> 
<%@ page import="java.util.*"%> 
<%@ page import="java.math.*"%> 
<%@ page import="ytl.*"%> 
<%
String number = request.getParameter("number");
String type = request.getParameter("type");
if(type != null){
if(type.equals("mstx_image")){
OutputStream outs = null;
try{
ArrayList<MSTXImage> myMSTXImages = DBUtil.getMSTXImage(Integer.parseInt(number));
if(!myMSTXImages.isEmpty()){
MSTXImage mi = myMSTXImages.get(0);
Blob b = mi.getB();
long size = b.length();
byte[] bs = b.getBytes(1, (int)size);
/*
System.out.println(bs.length+"=============");
int c = 0;
for(int i=0; i<bs.length; i++){
System.out.print(bs[i]);
if(c == 9){
System.out.println();
}
c = (c+1)%10;
}
*/
response.setContentType("image/jpeg");
if(outs == null){
outs = response.getOutputStream();//得到流
}
outs.write(bs);//输出
outs.flush(); 
out.clear();//必须加上,否则会异常
out = pageContext.pushBody(); 
}

catch(Exception e){//捕获异常
e.printStackTrace();//打印异常
}
finally{//关闭
try{
if(outs != null){
outs.close();//关闭流
outs = null;
}
}
catch(Exception e){//捕获异常
e.printStackTrace();//打印异常 
}
}
}
else if(type.equals("mstx_ads_image")){//显示管理界面广告
OutputStream outs = null;
try{
Blob myMSTXImages = DBUtil.getMstxAdsImageByGpid(Integer.parseInt(number));
long size = myMSTXImages.length();
byte[] bs = myMSTXImages.getBytes(1, (int)size);
response.setContentType("image/jpeg");
if(outs == null){
outs = response.getOutputStream();//得到流
}
outs.write(bs);//输出
outs.flush(); 
out.clear();//必须加上,否则会异常
out = pageContext.pushBody();

catch(Exception e){//捕获异常
e.printStackTrace();//打印异常
}
finally{//关闭
try{
if(outs != null){
outs.close();//关闭流
outs = null;
}
}
catch(Exception e){//捕获异常
e.printStackTrace();//打印异常 
}
}
}
else if(type.equals("mstx_head")){//显示头像
OutputStream outs = null;
try{
ArrayList<MSTXHeadImage> myMSTXImages = DBUtil.getHeadImage(Integer.parseInt(number));
if(!myMSTXImages.isEmpty()){
MSTXHeadImage mi = myMSTXImages.get(0);
Blob b = mi.getB();
long size = b.length();
byte[] bs = b.getBytes(1, (int)size);
response.setContentType("image/jpeg");
if(outs == null){
outs = response.getOutputStream();//得到流
}
outs.write(bs);//输出
outs.flush(); 
out.clear();//必须加上,否则会异常
out = pageContext.pushBody(); 
}

catch(Exception e){//捕获异常
e.printStackTrace();//打印异常
}
finally{//关闭
try{
if(outs != null){
outs.close();//关闭流
outs = null;
}
}
catch(Exception e){//捕获异常
e.printStackTrace();//打印异常 
}
}
}
}
%>
数据库nullimportexceptionbyte

解决方案 »

  1.   

    看到这种狂贴代码就头疼;眼花。飘过。逛其他的去。
    给你一个读取图片显示的代码;你自己去看看整理到自己的代码中;你的代码真的不想看。。ServletOutputStream out = response.getOutputStream(); 
    InputStream input = “数据库查询出的image”;
     int i = 0;  
     while ((i = input.read()) != -1) {  
    out.write(i);  
     }  

    out.flush();  
    out.close(); 页面显示的时候<img src="指向这个方法的地址">
      

  2.   


    存储图片;应该将图片上传到服务器的某个目录下面。然后再tomcat中配置映射。访问图片;不赞成直接保存在项目的某个目录。原因和各种不方便    你懂得