首页>代码>java Servlet上传下载文件http协议原理详解>/fileSCXZ/src/com/shengke/servlet/DownloadServlet.java
package com.shengke.servlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class DownloadServlet
 */
public class DownloadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       


	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//获取文件下载路径,自己可是根据需求修改,一般是你的资源服务的目录
//		String path = getServletContext().getRealPath("/") + "images/";
		String path = "/home/shengke/workspace/fileSCXZ/WebContent/images/";
		String filename = request.getParameter("filename");
		File file = new File(path + filename);
		//判断文件是否存在
		if(file.exists()){
			//设置相应类型application/octet-stream(文件下载类型)
			response.setContentType("application/x-msdownload");
			//设置头信息(以附件形式,打开下载文件)
			response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
			//获取输入流输出流
			InputStream inputStream = new FileInputStream(file);
			ServletOutputStream ouputStream = response.getOutputStream();
			//循环把输入流写入输出流
			byte b[] = new byte[1024];
			int n ;
			while((n = inputStream.read(b)) != -1){
				ouputStream.write(b,0,n);
			}
			//关闭流、释放资源
			ouputStream.close();
			inputStream.close();
			
			
		}else{
			request.setAttribute("errorResult", "文件不存在下载失败!");
			RequestDispatcher dispatcher = request.getRequestDispatcher("jsp/index.jsp");
			dispatcher.forward(request, response);
		}
		
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request,response);
	}

}
最近下载更多
3969138  LV15 2019年9月23日
小王wang  LV10 2017年5月26日
阿基师  LV5 2017年1月9日
沉默的羔羊  LV13 2016年12月31日
kasojava  LV3 2016年12月21日
猛男  LV17 2016年5月29日
303661956  LV11 2016年2月2日
归心小贩  LV13 2016年1月21日
有生之年  LV4 2015年6月24日
cpr  LV3 2015年3月18日
最近浏览更多
uni-code_0123  LV1 2023年11月11日
jameshkj  LV8 2023年5月18日
人工智能4708  LV11 2023年5月1日
ninini121  LV1 2023年3月28日
Java开发工程师_初心  LV1 2022年12月17日
微信网友_6255804817526784 2022年12月10日
暂无贡献等级
wy1179682217 2022年11月27日
暂无贡献等级
dongzhan  LV12 2021年12月15日
酒非儿  LV6 2021年12月10日
Aoifee  LV4 2021年11月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友