使用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中存储的是一个网络文件的地址.