package com.chinada.dms.controller.common; import com.sys.lib.exception.ServiceErrorException; import com.sys.lib.utils.LoggerUtils; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; @Controller @RequestMapping("/templete") public class TempleteController { /** * 模板下载 * @param request * @param response * @param type */ @RequestMapping("/downTemplete") public void download(HttpServletRequest request, HttpServletResponse response, Integer type) { String fileName = null; switch (type) { // 参赛团队 case 1: fileName = "参赛团队运动员导入模板.xlsx"; break; case 2: // 赛事 fileName = "赛事导入模板.xlsx"; break; case 3: // 运动员 fileName = "运动员导入模板.xls"; break; default: throw new ServiceErrorException("参数有误"); } ClassPathResource tempPathResource = new ClassPathResource("uploadTemplete" + File.separator + fileName); //String filePlace=bootdoConfig.getUploadPath()+filePath.replace("/files/",""); OutputStream outputStream = null; InputStream inputStream = null; try { // File file = tempPathResource.getFile(); String browser = ""; browser = request.getHeader("User-Agent"); if (-1 < browser.indexOf("MSIE 6.0") || -1 < browser.indexOf("MSIE 7.0")) { // IE6, IE7 浏览器 response.addHeader("content-disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO8859-1")); } else if (-1 < browser.indexOf("MSIE 8.0")) { // IE8 response.addHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); } else if (-1 < browser.indexOf("MSIE 9.0")) { // IE9 response.addHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); } else if (-1 < browser.indexOf("Chrome")) { // 谷歌 response.addHeader("content-disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8")); } else if (-1 < browser.indexOf("Safari")) { // 苹果 response.addHeader("content-disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO8859-1")); } else { // 火狐或者其他的浏览器 response.addHeader("content-disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8")); } outputStream = response.getOutputStream(); inputStream = tempPathResource.getInputStream(); byte[] buffer = new byte[2048]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, i); } outputStream.flush(); outputStream.close(); inputStream.close(); } catch (IOException ioe) { LoggerUtils.error(TempleteController.class,ioe.getMessage()); }finally { if(outputStream != null){ try { outputStream.close(); } catch (IOException e) { LoggerUtils.error(TempleteController.class,e.getMessage()); } } if(inputStream != null ){ try { inputStream.close(); } catch (IOException e) { LoggerUtils.error(TempleteController.class,e.getMessage()); } } } } }
项目本地下载--xls模板
原创
©著作权归作者所有:来自51CTO博客作者小飞侠格鲁帅的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:js数组数据的删除操作
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章