a连接传递参数实现文件下载

56 篇文章 0 订阅
18 篇文章 0 订阅

Java后端代码如下:

	@RequestMapping(value="/atoDownLoad")
	private ModelAndView atoDownLoad(HttpServletResponse response,HttpServletRequest request) throws Exception {
		
		ModelAndView mv = this.getModelAndView();
		String strUrl =   request.getParameter("path").replaceAll(",", "\\\\");
		System.out.println(strUrl+"00000000000");
		String filename = strUrl.substring( strUrl.lastIndexOf("\\") + 1);
		filename = new String(filename.getBytes("iso8859-1"),"UTF-8");

		String path = strUrl;
		File file = new File(path);
		//如果文件不存在
		if(!file.exists()){
			mv.setViewName("file/FileDownload");
		    return mv;
		}
		//设置响应头,控制浏览器下载该文件
		response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
		//读取要下载的文件,保存到文件输入流
		FileInputStream in = new FileInputStream(path);
		//创建输出流
		OutputStream out = response.getOutputStream();
		//缓存区
		byte buffer[] = new byte[1024];
		int len = 0;
		//循环将输入流中的内容读取到缓冲区中
		while((len = in.read(buffer)) > 0){
		    out.write(buffer, 0, len);
		}
		//关闭
		in.close();
		out.close();        
		mv.setViewName("file/FileDownload");
		return mv;
	}

jsp代码:

	<a class="layui-btn layui-btn-sm layui-btn-normal " onclick="sendPath()" >
	 <img src="static/layer/image/icon/xinzeng.png">下载</a>
        <a id="ssss" href="" name="" ></a>
       function sendPath(){
	   var paths = $(".ace input:checked");
	  if(paths.length>1){
		return;
		}else{
			var x =  $(".ace input:checked").parent().next().next().val();
			var newsss = x.replace('\\',',');
			var hrefs = '<%=basePath%>fileLook/atoDownLoad?path=' + newsss;
			 $('#ssss').attr('href',hrefs);
			 $("#ssss").append("<span></span>");
			$("#ssss span").click();
 		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值