springMVC下载在线资源

        使用springMVC如何下载网络上的在线资源,话不多说直接上代码记录一下

         

@RequestMapping(value = "/getDownLoadFileInfo.do", method = RequestMethod.GET)
	public String getDownLoadFileInfo(HttpServletResponse response,String fileInfoId){
		try {
			if(StringUtils.isNotBlank(fileInfoId)){
				FileInfo fileInfo = fileInfoService.getFileInfoById(fileInfoId);
				if(null!=fileInfo){
					response.reset();
					response.setCharacterEncoding("utf-8");
			    	response.setContentType("application/octet-stream");
			    	response.setContentType("multipart/form-data"); 
			    	response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileInfo.getFileName().getBytes("utf-8"),"iso-8859-1"));
			    	OutputStream outputStream = response.getOutputStream(); 
			    	URL url = new URL(fileInfo.getDownLoadPath());
					//建立链接
					HttpURLConnection httpUrl = (HttpURLConnection) url.openConnection();
				    //连接指定的资源
				    httpUrl.connect();
				    //获取网络输入流
				    InputStream inStream =  httpUrl.getInputStream();
					byte[] buffer = new byte[4 * 1024];
					int byteRead = -1;
					while ((byteRead = (inStream.read(buffer))) != -1) {
						outputStream.write(buffer, 0, byteRead);
					}
					outputStream.flush();
					inStream.close();
					outputStream.close();
			    }
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}

其中FileInfo里面的属性DownLoadPath中存储的是一个网络文件的地址.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值