一个jsp文件实现从数据库中下载任意类型文件
2007-05-21 14:03
701 查看
<%@ page language="java" import="java.sql.*,java.io.*,java.net.URLDecoder,java.net.URLEncoder"%>
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1444;DatabaseName=jspdev","sa","");
Statement stmt = con.createStatement();
String id=request.getParameter("id");
ResultSet rs = stmt.executeQuery("SELECT filename,content FROM TFILES where id="+id);
// if the resultset is not null
if (rs.next()){
String filename=rs.getString("filename");
response.setHeader("Content-Disposition",
"attachment;filename="+URLEncoder.encode(filename,"UTF-8"));
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
ServletOutputStream sout=response.getOutputStream();
InputStream in = rs.getBinaryStream("content");
byte b[] = new byte[1024*8];
for(int i=in.read(b);i!=-1;)
{
sout.write(b);
i=in.read(b);
}
sout.flush();
sout.close();
in.close();
}
rs.close();
stmt.close();
con.close();
%>
</body>
</html>
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1444;DatabaseName=jspdev","sa","");
Statement stmt = con.createStatement();
String id=request.getParameter("id");
ResultSet rs = stmt.executeQuery("SELECT filename,content FROM TFILES where id="+id);
// if the resultset is not null
if (rs.next()){
String filename=rs.getString("filename");
response.setHeader("Content-Disposition",
"attachment;filename="+URLEncoder.encode(filename,"UTF-8"));
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
ServletOutputStream sout=response.getOutputStream();
InputStream in = rs.getBinaryStream("content");
byte b[] = new byte[1024*8];
for(int i=in.read(b);i!=-1;)
{
sout.write(b);
i=in.read(b);
}
sout.flush();
sout.close();
in.close();
}
rs.close();
stmt.close();
con.close();
%>
</body>
</html>
相关文章推荐
- JavaScript/Jsp 实现对数据库的增删改查和简单的下载上传文件
- Struts2实现文件下载(读取数据库CLOB类型的CDA)
- 采用struts2+hibernate实现保存文件到Oracle数据库&&并附下载代码【导入即可用】;数据库中保存blob类型的二进制文件
- JSP隐含对象response实现文件下载的两种方式
- 用JSP+servlet实现文件的上传与下载
- jspsmart实现页面不跳转上传和下载文件(一)
- JSP response对象实现文件下载的两种方式
- 网站上有一个mp3文件,但是用<a href="my.mp3">下载</a>时,会在播放器里打开,请问我要怎样才能实现点击后下载呢?
- jsp下载文件的实现方法
- Jsp+Servlet实现文件上传下载(一)--文件上传
- 一个专门用于文件下载的类。实现文件下载时流量等相关信息的处理。
- 将任意类型映射到一个唯一整数(C++模板实现TypeList)
- 在一个网站的asp文件下,重定向另一个网站的jsp网页,如何实现在本网站中隐藏调用网站的域名?
- jsp下载文件的实现方法 及 注意
- ASP.NET文件下载简单实现(也可以通过直接读取数据库 大字段文件,如oracle 中的bolg,long raw 等大字段文件)
- jspsmart实现文件的上传与下载
- PhoneGap 实现带进度条的文件上传(支持任意类型文件)
- jsp简单实现提供文件下载
- php -- PHP实现点击a标签的href做链接时,直接保存文件(任何类型),而不是通过浏览器直接打开下载的文件
- Jsp+Servlet实现文件上传下载(二)--文件列表展示