項目需要下載導入模板,springboot使用如下下載方式可解決問題:
/**
* 導入模板下載
* @param req
* @param resp
* @param context
* @return
*/
@RequestMapping(value = "wSku/downLoadFile", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody void downLoadFile(HttpServletRequest req,HttpServletResponse resp) {
String fileDownName ="價格表-模板.xlsx";
logger.debug("下載模板文件名稱:"+fileDownName);
try {
InputStream fis = WSkuController.class.getResourceAsStream("/exceltemplet/priceListTemplate.xlsx");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
response.setContentType("bin");
String fileNames = fileDownName;
String agent = request.getHeader("USER-AGENT");
String codedfilename = "";
if (null != agent && -1 != agent.indexOf("MSIE") || null != agent && -1 != agent.indexOf("Trident")) {// ie
String name = java.net.URLEncoder.encode(fileNames, "UTF8");
codedfilename = name;
} else if (null != agent && -1 != agent.indexOf("Mozilla")) {// 火狐,chrome等
codedfilename = new String(fileNames.getBytes("UTF-8"), "iso-8859-1");
}
response.addHeader("Content-Disposition", "attachment; filename=\"" + codedfilename + "\"");
response.getOutputStream().write(buffer);
} catch (IOException e) {
e.printStackTrace();
logger.debug("下載價格表-模板文件報錯"+e.getMessage(), e);
}
}
其中文件存放在如下路徑下:/imfbp-istorewares-admin/src/main/resources/exceltemplet/priceListTemplate.xlsx