首页>代码>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);
	}

}
最近下载更多
guo0326  LV1 3月28日
笑得很美  LV11 3月13日
xiongwei11231  LV8 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日
jiyun2021  LV9 2021年12月22日
最近浏览更多
DuaN399 4月3日
暂无贡献等级
guo0326  LV1 3月26日
953558449 3月26日
暂无贡献等级
笑得很美  LV11 3月13日
anbangchen89  LV2 2月28日
itcaizhe  LV9 1月9日
247698755  LV5 1月5日
baozhenghua  LV2 2023年12月4日
13161895  LV1 2023年11月1日
zhaozhiqi  LV5 2023年10月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友