楼主可能没表达清楚,你这种情况应该是属于点击以后,从数据库导出xls生成到服务端的目录下,然后去读取,通过servlet下载到本地的时候是可以选择另存为,有要存放的目录:
附代码一段,希望对你有帮助 public ActionForward exportXsl(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String flg=request.getParameter("flg"); //区分是多选的性能列表 还是查看单个基站的历史性能 0多选 1单选
String fileName=request.getParameter("fileName");
String startDate=request.getParameter("startDate");
String endDate=request.getParameter("endDate");
String bts_id=request.getParameter("bts_id");
String btsidArr=request.getParameter("btsidArr");
if(xmlFileTempPath == null){
xmlFileTempPath= request.getSession().getServletContext().getRealPath("")+"/";
}
BtsHistoryPerfParamBean parambean = new BtsHistoryPerfParamBean();
parambean.setBtsid(bts_id);
parambean.setStartDate(startDate);
parambean.setEndDate(endDate);

List<BtsHistoryPerfBean> list = null;
if("0".equals(flg)){  //查询多个基站的历史数据
String[] arr = btsidArr.split(",");
parambean.setBtsidArr(arr);
//System.out.println(arr);
list =  btsHistoryPerfService.getAllHistoryPerfList(parambean);
}else{//查询单个基站的历时数据
BtsHistoryPerfResult resultbean = btsHistoryPerfService.getBtsPerfListByBts(parambean);
list = resultbean.getBtsHistoryPerfList();
}
Boolean b = createXsl(list,fileName);
if(!b) return null;
// 禁止数据缓存。
response.setHeader("Pragma", "no-cache");
// response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
// 设置响应的类型格式为电子表格格式
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
ServletOutputStream sos = response.getOutputStream();
try {
File f = new File(xmlFileTempPath+fileName);
 
FileInputStream fi = new FileInputStream(f);
byte[] buf = new byte[(int) f.length()];
fi.read(buf, 0, (int) f.length());
sos.write(buf);
fi.close();
sos.close();
} catch (Exception e) {
e.printStackTrace();
throw new IOException("导出Excel失败");
}finally{
File file=new File(xmlFileTempPath+fileName);
if(file.exists()){
file.delete();
}
}
return null;}

解决方案 »

  1.   

    input=file 不是上传的时候才用吗?
      

  2.   


    那下载的时候,Input怎么定义啊? input=?
      

  3.   

    楼主思路没清楚吧,下载的时候是你点击‘下载’按钮,假定是按钮吧,请求后台Servlet或者struts、其他的jsp也行,把数据库里面的结果集查询出来,声场excel文件,返回给客户端,客户端这个时候会弹出一个文件另存为框,另存为你想要的目录吧.