下载servlet_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 下载servlet

下载servlet

 2011/12/15 9:23:36  zhb1208  http://zhb1208.iteye.com  我要评论(0)
  • 摘要:publicclassDownloadServletextendsHttpServlet{privatestaticfinallongserialVersionUID=8438995458642112537L;@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringpath=request
  • 标签:下载 Servlet
public class DownloadServlet extends HttpServlet {

	private static final long serialVersionUID = 8438995458642112537L;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String path = request.getParameter("path");
		if(path != null && !path.trim().equals("")) {
			path = new String(path.getBytes("iso-8859-1") , "utf-8");
			String realPath = request.getSession().getServletContext().getRealPath(path);
			File file = new File(realPath);
			if(file.exists() && file.isFile()) {
				InputStream in = null;
				try{
					in = new FileInputStream(realPath);
				}catch (Exception e) {
					PrintWriter pw = response.getWriter();
					pw.println("您请求的资源 " + path + " 不存在");
					pw.close();
					return;
				}
				String fileName = "";
				if(realPath.indexOf("\\") == -1) {
					fileName = realPath;
				} else {
					fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
				}
				response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes() , "iso-8859-1"));
				OutputStream out = response.getOutputStream();
				IOUtils.copy(in, out);
				IOUtils.closeQuietly(in);
				IOUtils.closeQuietly(out);
			} else {
				PrintWriter pw = response.getWriter();
				pw.println("您请求的资源 " + path + " 不是文件或文件不存在");
				pw.close();
				return;
			}
		} else {
			PrintWriter pw = response.getWriter();
			pw.println("错误的空资源");
			pw.close();
		}
	}

}
发表评论
用户名: 匿名