不是我写的.//文件下载的Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class downloadfile extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Post request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE); String pathsavefile;//要下载的文件
String fileName;//保存窗口中显示的文件名
fileName=response.encodeURL(new String(fileName.getBytes(),"ISO8859_1"));//转码 try
{
response.reset();
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
ServletOutputStream out = response.getOutputStream();
InputStream inStream=new FileInputStream(pathsavefile);
//循环取出流中的数据
byte[] b = new byte[1024];
int len;
while((len=inStream.read(b)) >0)
out.write(b,0,len);
}
out.close();
inStream.close();
}
catch (Exception e)
{
System.out.println(e);
}
}
//Clean up resources
public void destroy() {
}
}
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class downloadfile extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Post request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE); String pathsavefile;//要下载的文件
String fileName;//保存窗口中显示的文件名
fileName=response.encodeURL(new String(fileName.getBytes(),"ISO8859_1"));//转码 try
{
response.reset();
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
ServletOutputStream out = response.getOutputStream();
InputStream inStream=new FileInputStream(pathsavefile);
//循环取出流中的数据
byte[] b = new byte[1024];
int len;
while((len=inStream.read(b)) >0)
out.write(b,0,len);
}
out.close();
inStream.close();
}
catch (Exception e)
{
System.out.println(e);
}
}
//Clean up resources
public void destroy() {
}
}
解决方案 »
- 文件上传时的类型转换
- 请问关于两个<input type="text"/>同时录入的问题
- 使用过滤器之后页面显示乱码怎么回事?
- 请大家帮我看看,这个程序为什么报错?关于Integer.parseInt的~!
- Eclipse项目导入问题
- 关于Servlet不能显示中文!急呀、急呀、急呀、急呀、……
- 关于jxl的问题
- 用jbuilder做好jsp页面后,怎样生成可执行文件?
- 如何从表单radio中得到它的value值呀.
- 通过对话框形式打开窗口在执行history.back()操作如何保证原有内容存在??
- 大菜鸟求教,J2EE,EJB,JSP,SERVLET ,JAVABEAN,之间的关系,和他们对JAVA 的关系到底是怎样的?
- 问??
jsp也是servlet啊
<%
String fileName = "F:/JavaProj/product.xml";
java.io.FileInputStream fis = new java.io.FileInputStream( fileName );
response.reset();
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=product.xml");
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String inputLine;
while ((inputLine = in.readLine()) != null)
out.println(inputLine);
in.close();
%>