JAVA后台处理文件URL,实现改名
说明
数据库中存另一台服务器文件地址,前端访问进行下载,需要修改文件名。
接口功能需要获取URL进行改名,传到前端进行下载。
方法
/*
* 中转处理下载链接
* 修改文件名
* */
public static void DownloadRename(String url,String name, HttpServletResponse response) throws IOException {
//设置文件名,打开方式
response.addHeader( "Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "inline;fileName=\"" + new String(name.getBytes("utf-8"),"ISO8859-1") + "\"");
//获取URL文件流
InputStream intstream = new URL(url).openStream();
//输出到浏览器
byte[] bytes = new byte[1024];
OutputStream out= response.getOutputStream();
int count = 0;
while((count=intstream.read(bytes))!=-1){
out.write(bytes, 0, count);//将缓冲区的数据输出到浏览器
}
//关闭流
intstream.close();
out.flush();
out.close();
}
调用实例
ReportAdmin 为实例对象
/*附件下载*/
public String DownloadAttachments(String id, HttpServletResponse response) throws IOException {
ReportAdmin reportAdmin = get(id);
if (reportAdmin != null){
String url = reportAdmin.getFileUrl();
String name = reportAdmin.getFileName() + "." + reportAdmin.getDocType();
if (url != null && !url.equals("")){
HttpRequest.DownloadRename(url, name, response);
return "下载完成";
}else {
return "url为空";
}
}else {
return "无此对象";
}
}