【java用I/O流下载】给个url就能下载,可复制粘贴直接使用

项目中源代码如下:
@RequestMapping("downloadattr")
		@ResponseBody
		public void downloadattr(HttpServletRequest request, HttpServletResponse response) {
			//服务器中文件的路径
			String url = request.getParameter("url");
			String[] fullName = url.split("/");
			//本次代码的url用"/"分割后最后一段是文件名
			String attaName = fullName[fullName.length - 1];
			attaName.substring(14, attaName.length());
			try {
				//设置编码为utf-8
				String filePath = java.net.URLDecoder.decode(url, "UTF-8");
				// 读取临时文件并写出
				File file = new File(filePath);
				if (file.exists()) {
					InputStream in = new FileInputStream(file);
					response.setCharacterEncoding("UTF-8");
					response.addHeader("Content-disposition", "attachment; filename=" + attaName);
					response.setContentType("application/msword");

					OutputStream outWrite = response.getOutputStream();
					// 一次读多个字节
					byte[] tempBytes = new byte[100];
					int byteRead = 0;
					// 读入多个字节到字节数组中,byteRead为一次读入的字节数
					while ((byteRead = in.read(tempBytes)) != -1) {
						outWrite.write(tempBytes, 0, byteRead);
					}
					in.close();
					outWrite.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
主要内容为try-catch里面的,可以复制粘贴,改改地址和文件名字就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值