/**
* 根据URL地址下载附件
* @param response
* @param fileUrl 文件路径
* @param nameOfPDF 自定义文件名
*/
public static void invoiceDownload(HttpServletResponse response, HttpServletRequest request,String fileUrl, String nameOfPDF) throws Exception{
ServletOutputStream out = null;
InputStream ips = null;
URL oracle = null;
oracle = new URL(fileUrl);
HttpURLConnection uc = null;
uc = (HttpURLConnection) oracle.openConnection();
uc.setDoInput(true);
uc.connect();
//文件名
String newFileName = fileName(fileUrl);
ips = uc.getInputStream();
response.setContentType("multipart/form-data");
//为文件重新设置名字
String userAgent = request.getHeader("USER-AGENT");//获取浏览器版本
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
nameOfPDF = URLEncoder.encode(nameOfPDF,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
nameOfPDF = new String(nameOfPDF.getBytes(), "ISO8859-1");
}else{
nameOfPDF = URLEncoder.encode(nameOfPDF,"UTF8");//其他浏览器
}
response.addHeader("Content-Disposition", "attachment; filename=\"" + nameOfPDF + ".pdf\"");
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();
out.close();
ips.close();
return ;
}
/**
* 获取文件名字
* @param fileName
* @return
*/
private static String fileName(String fileName){
if (StringUtils.isNotBlank(fileName)) {
int offset = fileName.lastIndexOf("/");
if (offset != -1 && offset != fileName.length() - 1) {
String ext = fileName.substring(offset + 1);
return ext.toLowerCase();
}
}
return "";
}
根据URL地址值获取附件并在浏览器下载保存
最新推荐文章于 2023-11-29 16:22:27 发布