NutzCN Logo
问答 下载文件时想顺带返回js方法到前台运行?这样写哪里不对么?
发布于 2338天前 作者 qq_39fcc7a4 1714 次浏览 复制 上一个帖子 下一个帖子
标签:

/** 生成的excel文件扩展名 */ private static final String FileExt = "xls"; @Inject DownloadGridExcelService downloadGridExcelService; @Ok("raw:application/ms-excel") @At("/downloadExcel") public Object downloadExcel(@Param("..") Map map, HttpServletResponse response) throws Exception { File f = null; try { String url = (String)map.get("sys_url"); String fileName = downloadGridExcelService.refineFileName(DataTypeUtil.toNotNullString(map.get("sys_fileName"))) + "." + FileExt; String params = (String)map.get("sys_params"); List<DownloadGridBean> dataList = Json.fromJsonAsList(DownloadGridBean.class, (String)map.get("sys_columnData")); f = downloadGridExcelService.createExcel(url, params, fileName, dataList); response.setHeader("content-disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); response.setCharacterEncoding("utf-8"); response.getWriter().write("<SCRIPT> alert('good'); </SCRIPT>"); response.getWriter().close(); } catch (Exception e) { log.error(e); } return f; }
7 回复

这样不行么?

那有其他办法实现么?

要是用ajax发送请求第一次生成文件保存到服务器,返回文件的地址到ajax的回吊函数里,在回调函数里再发送ajax下载文件可以么?

ajax不能下载文件,需要iframe之类的间接手段

搞定了,利用ajax发送标识位,前台掉一个周期方法,一直判断标识位

添加回复
请先登陆
回到顶部