关于上传下载的问题,请高手指教。
小弟将图片用,jspSmartUpload组件上传到SQL Server2000 的Image字段里,
读取的时候,代码如下:
HttpSession session = req.getSession();
int contract = ((Integer) session.getAttribute("contract")).intValue();
Dbcon db = new Dbcon();
try {
Connection con = db.getcon();
Statement st = con.createStatement();
ResultSet rset = st
.executeQuery("select PHOTO from RS_APHOTO where CONTRACTID="
+ contract);
Blob content = null;
if (rset.next()) {
res.setContentType("image/jpeg");
res.setHeader("Content-Disposition",
"attachment;filename=" );
javax.servlet.ServletOutputStream out = res.getOutputStream();
content = rset.getBlob("PHOTO");
if (content != null) {
BufferedInputStream in = new BufferedInputStream(content.getBinaryStream());
BufferedOutputStream bufOut = new BufferedOutputStream(res.getOutputStream());
int n = -1;
byte buffer[] = new byte[4096];
while((n = in.read(buffer, 0, 4096)) > -1)
bufOut.write(buffer, 0, n);
//
//
in.close();
out.flush();
out.close();
} else {
res.setContentType("text/html;charset=gb2312");
PrintWriter out1 = res.getWriter();
out1.println("<html><head></head><body>");
out1.println("<h3>对不起,没有找到该页面!</h3>");
out1.println("</body></html>");
out1.flush();
System.out.println("Blob数据流读取日志:");
return;
}
}else{
res.setContentType("text/html;charset=gb2312");
PrintWriter out = res.getWriter();
out.println("<html><head></head><body>");
out.println("<h3>对不起,没有上传照片!</h3>");
out.println("</body></html>");
out.flush();
System.out.println("Blob数据流读取日志:");
return;
}
} catch (SQLException ex) {
ex.printStackTrace();
}
**********************************
提示如下错误:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unsupported data conversion.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseData.unsupportedConversion(Unknown Source)
at com.microsoft.jdbc.base.BaseData.getBlob(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getBlob(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getBlob(Unknown Source)
at org.apache.commons.dbcp.DelegatingResultSet.getBlob(DelegatingResultSet.java:318)
at com.employee.ReadPhoto.doGet(ReadPhoto.java:64)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at web.filter.CharsetFilter.doFilter(CharsetFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
************
请教怎么解决,我什么地方错了。为什么数据不能转换??