1. 前端请求不能是原来的
$.ajax请求;
window.location.href = downScheduleInfoUrl+"?"+参数
Java后台导出Excel表,没有出现下载提示问题解决
PS:将访问方式ajax改成 location.href = url就行了。
https://blog.csdn.net/a1029573879a/article/details/83419529
2. 火狐乱码导出: 设置
https://blog.csdn.net/bylhjcsmmd/article/details/78284736
|----导出
在导出的 文件名后边加 filename*=utf-8'zh_cn'"
3. 后台导出代码
title = java.net.URLDecoder.decode(title, "UTF-8");
InvoiceInfoBP invoiceInfoBP = new InvoiceInfoBP();
File file = invoiceInfoBP.downScheduleInfo(invoiceId, tripinfoid, title);
try {
Response response = Response.current();
response.reset();
response.contentType = "application/msexcel;charset=utf-8";
response.setHeader("Content-disposition", "attachment;filename*=utf-8'zh_cn'"+java.net.URLEncoder.encode(java.net.URLDecoder.decode(title.replace("(", "(").replace(")", ")"), "utf-8")+ ".pdf", "UTF-8"));
if(file!=null){
FileInputStream input=new FileInputStream(file);
byte[] bytes=new byte[1024];
while(input.read(bytes)!=-1){
response.out.write(bytes);
}
if(input!=null){
input.close();
}
}
} catch (Exception e) {
}
4. 根据不同浏览器设置不同的编码:
boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);// != -1 IE浏览器乱码问题
if (isMSIE) {
finafileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else {
finafileName = new String(StringUtil.downloadNameCheck(fileName).getBytes(), "ISO8859_1");
}