首页>代码>s2sh政府电子政务网站>/dzzw/src/com/my/dzzw/action/DownLoadServlet.java
package com.my.dzzw.action;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;

import javax.servlet.ServletException;
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#HttpServlet()
     */
    public DownLoadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		/* try
		  {
		   String downFilename=request.getParameter("curfile");
		   String filepath="D:/my"+request.getParameter("path");
		   response.setContentType("application/octet-stream");
		         response.setHeader("Location",downFilename);
		         response.setHeader("Content-Disposition", "attachment; filename=" + downFilename);
		         OutputStream outputStream = response.getOutputStream();
		         InputStream inputStream = new FileInputStream(filepath);
		         byte[] buffer = new byte[1024];
		         int i = -1;
		         while ((i = inputStream.read(buffer)) != -1) {
		          outputStream.write(buffer, 0, i);
		         }
		         outputStream.flush();
		         outputStream.close();
		  }catch(FileNotFoundException e1)
		  {
		   System.out.println("没有找到您要的文件");
		  }
		  catch(Exception e)
		  {
		   System.out.println("系统错误,请及时与管理员联系");
		  }
		 */
		 String filePath = "D:/my"+request.getParameter("path"); 
         String downloadFilename =request.getParameter("curfile"); 
         downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");  
         File file = new File(filePath); 
//         // 对默认下载的文件名编码。不编码的结果就是,在客户端下载时文件名乱码  
//         File file = new File(filePath);  
//         if (file.exists()) {  
//             // 写明要下载的文件的大小  
//             response.setContentLength((int) file.length());  
//             response.setHeader("Content-Disposition", "attachment;filename="  
//                     + downloadFilename);// 设置在下载框默认显示的文件名  
//             response.setContentType("application/x-download");  
//             // 读出文件到response  
//             // 这里是先需要把要把文件内容先读到缓冲区  
//             // 再把缓冲区的内容写到response的输出流供用户下载  
//             FileInputStream fileInputStream = new FileInputStream(file);  
//             BufferedInputStream bufferedInputStream = new BufferedInputStream(  
//                     fileInputStream);  
//             byte[] b = new byte[bufferedInputStream.available()];  
//             bufferedInputStream.read(b);  
//             OutputStream outputStream = response.getOutputStream();  
//             outputStream.write(b);  
//             // 人走带门  
//             bufferedInputStream.close();  
//             outputStream.flush();  
//             outputStream.close();  
             
             
             OutputStream out = response.getOutputStream();  
             FileInputStream fileInputStream = new FileInputStream(file);  
             BufferedInputStream bis = new BufferedInputStream(fileInputStream);  
             BufferedOutputStream  bos= new BufferedOutputStream(out);  
               
             int length =fileInputStream.available() ;  
             // Set Response  
             response.setContentType("application/msword");  
             response.setHeader("Content-Length", String.valueOf(length));  
             response.setHeader("Content-Disposition", "attachment;filename=\"" + downloadFilename + "\"");  
               
             byte[] buffer = new byte[1024];  
             int bytesRead = -1;  
             while ( (bytesRead = bis.read(buffer)) != -1){  
                 bos.write(buffer, 0, bytesRead);  
             }  
               
             bos.flush();  
               
             bis.close();  
             bos.close();  
             fileInputStream.close();  
             out.close();  
	}

	/**
	 * @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);
	}

}
最近下载更多
justoday  LV11 2024年9月11日
guo0326  LV1 2024年3月28日
笑得很美  LV11 2024年3月13日
xiongwei11231  LV9 2023年8月31日
北方菜  LV11 2022年12月30日
12koko  LV3 2022年11月3日
zhaoyangwfd  LV17 2022年9月28日
唐僧洗头爱飘柔  LV22 2022年8月22日
testuser1234567  LV24 2022年6月30日
ᯤ⁵²¹ᴳ⁺  LV8 2022年4月6日
最近浏览更多
zhanghna799  LV3 3月10日
2602275348  LV12 2024年12月23日
china_hdh  LV7 2024年10月10日
lqzixi  LV4 2024年10月9日
求学的熊猫  LV11 2024年9月24日
justoday  LV11 2024年9月11日
sunlea  LV20 2024年5月9日
203163  LV5 2024年4月25日
DuaN399 2024年4月3日
暂无贡献等级
guo0326  LV1 2024年3月26日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友