struts2下载文件问题

zjc198805 2010-08-12 02:27:06
action中代码:
public String downLoadComplex()
{
String [][]data=null;
String urlPath=null;
String minTime=(String)request.getSession().getAttribute("lastMonth");
String maxTime=(String)request.getSession().getAttribute("yesterday");
data=statisticService.getCsv(num,id, FileName.map.get(Integer.parseInt(num)),type_v,type_p,type_r,type_r1,minTime,maxTime);
response.setCharacterEncoding("UTF-8");
String date=new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
if(data!=null)
urlPath=getCsv(data,date);
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("application/vnd.ms-excel");
//response.setContentType("application/octet-stream;charset=UTF-8");
// response.setContentType("application/vnd.rn-realmedia-vbr");
response.setHeader("Content-disposition","inline;filename=\"" + data[0][0] + " ( " + date + ").csv" + "\"");

OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(request.getRealPath("/")+urlPath);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, i);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;

}
@SuppressWarnings("deprecation")
private String getCsv(String[][] data,String date)
{
String basePath = request.getRealPath("/");
String csvPath = basePath + "csv_data";

File tempFile = new File(csvPath);
tempFile.mkdirs();
File finalFile = new File(csvPath +"/" + data[0][0] + "("+date+").csv");
try {
CSVWriter writer = new CSVWriter(new FileWriter(finalFile));
for (int i = 0; i < data.length; i++)
{
writer.writeNext(data[i]);
}
writer.close();

} catch (IOException e) {
e.printStackTrace();
}
String urlPath="csv_data/" + data[0][0] + "("+date+").csv";
return urlPath;

}

迅雷文件名称多了一个后缀名(.action)
...全文
188 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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