前端引入

// 放在内部工具类中不便提取export function downloadFile(obj, name, suffix) {  const url = window.URL.createObjectURL(new Blob([obj]))  const fileName = parseTime(new Date()) + '-' + name + '.' + suffix  if ('download' in document.createElement('a')) {    // 反对a标签download的浏览器    const link = document.createElement('a') // 创立a标签    link.download = fileName // a标签增加属性    link.style.display = 'none'    link.href = url    document.body.appendChild(link)    link.click() // 执行下载    URL.revokeObjectURL(link.href) // 开释url    document.body.removeChild(link) // 开释标签  } else {    // 其余浏览器    navigator.msSaveBlob(new Blob([obj]), fileName)  }}

后端

@Override    public void download(List<GroupDto> queryAll, HttpServletResponse response) throws IOException {        List<Map<String, Object>> list = new ArrayList<>();        for (GroupDto groupDto : queryAll) {            Map<String, Object> map = new LinkedHashMap<>();            map.put("组名", groupDto.getName());            map.put("创立工夫", groupDto.getCreatedAt());            map.put("更新工夫", groupDto.getUpdatedAt());            list.add(map);        }        FileUtil.downloadExcel(list, response);    }// 工具类public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {        String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx";        File file = new File(tempPath);        BigExcelWriter writer = ExcelUtil.getBigWriter(file);        // 一次性写出内容,应用默认款式,强制输入题目        writer.write(list, true);        SXSSFSheet sheet = (SXSSFSheet)writer.getSheet();        //下面须要强转SXSSFSheet  不然没有trackAllColumnsForAutoSizing办法        sheet.trackAllColumnsForAutoSizing();        //列宽自适应        writer.autoSizeColumnAll();        //response为HttpServletResponse对象        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");        //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码        response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");        ServletOutputStream out = response.getOutputStream();        // 终止后删除临时文件        file.deleteOnExit();        writer.flush(out, true);        //此处记得敞开输入Servlet流        IoUtil.close(out);    }

火狐浏览器下载时如何敞开提醒如何解决文件

进去首先项配置path:进入about:config输出save查问以后首先响配置 增加一个配置信息browser.helperApps.neverAsk.saveToDiskapplication/octet-stream 申请类型在火狐设置外面关上总是询问,即可每次提醒保留地位