/**
*<下载>
*@param url 文件网络路径
*@return
*@creater Leo
*@datetime 2018年11月19日
*/
@RequestMapping(value="dowmloadFile")
@ResponseBody
public void dowmloadFile(@RequestParam("url")String url,HttpServletRequest request,HttpServletResponse response){
ServletOutputStream out = null;
InputStream ips = null;
URL oracle = null;
try {
oracle = new URL(url);
} catch (MalformedURLException e1) {
e1.printStackTrace();
return ;
}
HttpURLConnection uc = null;
try {
uc = (HttpURLConnection) oracle.openConnection();
} catch (IOException e1) {
e1.printStackTrace();
return ;
}
try {
uc.setDoInput(true);//设置是否要从 URL 连接读取数据,默认为true
uc.connect();
//文件名
String newFileName = fileName(url);
ips = uc.getInputStream();
response.setContentType("multipart/form-data");
//为文件重新设置名字,采用数据库内存储的文件名称
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(newFileName.getBytes("UTF-8"),"ISO8859-1") + "\"");
out = response.getOutputStream();
//读取文件流
int len = 0;
byte[] buffer = new byte[1024 * 10];
while ((len = ips.read(buffer)) != -1){
out.write(buffer,0,len);
}
out.flush();
}catch (Exception e){
e.printStackTrace();
}finally {
try {
out.close();
ips.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return ;
}
/**
*<文件名获取>
*@param fileName
*@return
*@creater Leo
*@datetime 2018年11月19日
*/
private String fileName(String fileName){
String ext = Strings.EMPTY;
if (Strings.isNotBlank(fileName)) {
int offset = fileName.lastIndexOf("/");
if (offset != -1 && offset != fileName.length() - 1) {
ext = fileName.substring(offset + 1);
}
}
return ext.toLowerCase();
}
前台写个<a href="请求路径">