java 下载CSV文件没有弹出保存框,直接在IE显示了。在线等啊,求大神帮忙解决下。

a271955291 2012-09-04 02:41:25
Map map = JsonParser.json2Map(xmlData);
URL url = URLUtil.getWebFileUrl(ConfigureParser.getInstance()
.getAttribute("filePath"));
String reportPath = url.getPath() + "/";
String reportName =null;
String sheetName = null;
File f = new File(reportPath, "excel");
if (!f.exists() && !f.isDirectory()) {//判断路径目录是否存在,判断是不是目录文件
f.mkdir();//不存在的话就创建file路径的目录
}
Calendar c = Calendar.getInstance();
c.add(c.SECOND,0);
String timeName = ""+c.get(c.YEAR)+(c.get(c.MONTH)+1)+c.get(c.DATE)
+c.get(c.HOUR_OF_DAY)+c.get(c.MINUTE)+c.get(c.SECOND);

reportName= "AnimalTongJi" + timeName + ".csv";
sheetName = "母猪状态统计";
String reportDir = reportPath + "excel/" + reportName;
reportDir=reportDir.replaceAll("%20", " ");

// 判断文件是否存在
File file = new File(reportDir);
if(file.exists())file.delete();//存在则删除

String displayName = null;
try {
displayName = URLEncoder.encode(reportName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
// HttpServletResponse response;
// response.setHeader("Content-disposition","inline;filename="+templateName);
HttpServletResponse response = ServletActionContext.getResponse();
response.reset();
response.setHeader("Cache-Control", "Public");
response.setContentType("application/msexcel");
// response.setContentType("application/ms-excel");
// response.setContentType("application/unknow");
// response.setHeader("Cache-Control", "Public");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","inline;filename="+displayName);
List list = stasticsService.getNDExcelBasic(xmlData);
Object[] map1 =null;
map1 = (Object[]) list.get(0);
int size = map1.length;
String result = "";

try {
FileOutputStream fos = new FileOutputStream(file,true);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
for (int i = 0; i < list.size(); i++) {
map1=(Object[]) list.get(i);
for (int j = 0; j < map1.length; j++) {
if(map1[j]!=null){
result +=map1[j];
}
result +=",";
}
result += "\r\n";
if(i%2000==0){
bw.write(result);
result ="";
}
}

bw.write(result);
bw.newLine();
bw.flush();
bw.close();
osw.close();
fos.close();
}

catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
this.print("{'name':" + timeName + "}");
return XML;
...全文
448 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
a271955291 2012-09-07
  • 打赏
  • 举报
回复
<mime-mapping>
<extension>csv</extension>
<mime-type>application/oct-stream</mime-type>
</mime-mapping>

终于找出问题了。Tomcat/conf/web.xml 文件中缺少了以上代码。

发出来这个答案,希望对看到的人有用。

谢谢上面回答的人。。
  • 打赏
  • 举报
回复
了解下载问题,前来顶帖
  • 打赏
  • 举报
回复
response.setContentType("text/csv;charset=UTF-8");

response.setHeader("Content-Disposition", "attachment;filename=" + file);

我就这两行就可以下载了
scbb 2012-09-04
  • 打赏
  • 举报
回复
你改成
response.setHeader("Content-Disposition","attachment;filename="+displayName);


这样还不对,我不信。
重新发布了吗??

下面这样写,试试看。 其实我觉得不改也没关系。

response.setContentType("application/vnd.ms-excel");


还有你怎么没有往
response.getOutputStream()里写东西呀。。。
  • 打赏
  • 举报
回复
response.reset();
response.setContentType("application/octet-stream;charset=GBK");
response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(displayName.getBytes("GBK"), "ISO-8859-1") + "\"");
attachment是下载,inline是在线打开
a271955291 2012-09-04
  • 打赏
  • 举报
回复
没有人知道是什么原因吗???????????
真心求解答啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
a271955291 2012-09-04
  • 打赏
  • 举报
回复
欢迎想了解java下载问题的同志前来顶帖。。
不顶就又沉了。。。。
a271955291 2012-09-04
  • 打赏
  • 举报
回复
//response.setHeader("Content-disposition","inline;filename="+displayName);
此行代码已经改为
response.setHeader("Content-Disposition","attachment;filename="+displayName);
有没有专家指导下。
百度上能找到的答案基本都试过。。。求专家级别指导啊。

81,087

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧