java文件下载的实现

public  void downloadFile(HttpServletRequest request,HttpServletResponse response) {
		String filePath = "temp.xml";
		String handKml = (String) request.getParameter("handKml");
		if(StringUtils.isBlank(handKml)){
			handKml = "没有内容";
		}
		try {
			FileWriter fw = new FileWriter(filePath);
			fw.write(handKml);
			fw.flush();
			fw.close();
			String fileName = "temp.xml"; //文件名,输出到用户的下载对话框
			//打开指定文件的流信息
			FileInputStream fs = null;
			fs = new FileInputStream(new File(filePath));
			//设置响应头和保存文件名
			response.setContentType("text/xml");
			response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName);
			//写出流信息
			int b = 0;
			PrintWriter out = response.getWriter();
			while((b=fs.read())!=-1) {
				out.write(b);
			}
			fs.close();
			out.close();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

其实就是将文件 以流的方式传递给返回,浏览器会自动接收提示保存文件。使用ajax接收是不行的。

不同的文件要设置不同的响应头:

eg:

		response.setContentType("text/xml");
		response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值