那个高人解决了图片不显示,而显示红叉问题?请帮忙。给你作揖了。

mycxrs 2003-03-24 01:40:14
请帮忙看一下用servlet下载数据库里图片的错误,急!
那个高人解决了图片不显示,而显示红叉问题?请帮忙。给你作揖了。

数据库不同,程序也不同吧?我用的是sql server, 存的格式image和binary我都试了,结果下载的图片
不显示,而在图片的地方只显示一个带有叉型(X)的方框,我估计图片还是下载下来了,就是没显示出来,
对不对?我该如何改?
程序如下:

import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class DownLoad2 extends HttpServlet{

public DownLoad2() {
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("======DownLoad begin=====");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:ds1","u3","p3");
Statement stmt=conn.createStatement();
String sql="select * from t1";
ResultSet rs=stmt.executeQuery(sql);

if(rs.next()){
InputStream in = rs.getBinaryStream(2);
response.setContentType("image/jpeg");
ServletOutputStream sout = response.getOutputStream();
byte[] b = new byte[1024*1024];
int len;
while((len=in.read(b)) >0){
sout.write(b,0,len);
}

sout.flush();
sout.close();
in.close();
rs.close();
stmt.close();
conn.close();
}
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println("======DownLoad end=====");
}
}

...全文
13 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mycxrs 2003-03-24
up
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2003-03-24 01:40
社区公告
暂无公告