Java web中上传和下载详解(下)

文件下载:

  1. 被下载的文件必须放到WEB-INF下面,不能让用户直接访问到。然后通过servlet下载就行。下载很简单,如下
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		String fileName = request.getParameter("path");
    		//处理中文乱码问题
    		fileName = new String(fileName.getBytes("ISO-8859-1"),"utf-8");
    		//得到文件保存路径
    		String filePath = this.getServletContext().getRealPath("/WEB-INF/download")+"\\"+fileName;
    		
    		File file = new File(filePath);
    		//如果文件不存在
    		if(!file.exists()){
    			System.out.println("文件不存在");
    			return;
    		}
    		
    		if(request.getHeader("User-Agent").contains("MSIE")){//是IE浏览器
    			//这样处理
    			fileName = new String(fileName.getBytes("gbk"),"ISO-8859-1");
    		}else{
    			//其他浏览器这样处理
    			fileName = new String(fileName.getBytes("utf-8"),"ISO-8859-1");
    		}
    		
    		//设置响应头信息,并在浏览器弹出框中设置显示的文件名
    		response.addHeader("content-disposition", "attachment;filename="+fileName);
    		//使用commons包类实现下载
    		IOUtils.copy(new FileInputStream(file), response.getOutputStream());
    		
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    	}


  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值