Java 获取网络文件获取流下载,支持IE火狐 直接下载而不直接打开

本文介绍了一种通过Java Servlet实现跨域文件下载的方法。利用HttpURLConnection进行资源连接,并通过设置响应头来控制浏览器的行为,确保文件能被正确下载而不是直接打开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void downloadFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
		String id = request.getParameter("id");
		String destUrl = "http://www.***.com/Download?id=" +id;
		
		// 建立链接
		URL url = new URL(destUrl);
		HttpURLConnection httpUrl = (HttpURLConnection) url.openConnection();
		// 连接指定的资源
		httpUrl.connect();
		// 获取网络输入流
		BufferedInputStream bis = new BufferedInputStream(httpUrl.getInputStream());

		response.setContentType("application/x-msdownload");
		response.setHeader("Content-Disposition", "attachment; filename=" + id);
		OutputStream out = response.getOutputStream();
		byte[] buf = new byte[1024];
		if (id != null) {
			BufferedInputStream br = bis;
			int len = 0;
			while ((len = br.read(buf)) > 0){
				out.write(buf, 0, len);
			}				
			br.close();
		}
		out.flush();
		out.close();

	}

下载跨域文件,设置IE 或者  火狐 直接下载,而不调用软件直接打开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值