生活随笔
收集整理的這篇文章主要介紹了
JAVA 文件下载:模板下载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
項目開發過程中,總會有批量導入的操作,但是批量導入需要指定一下導入文件的格式;一般都會使用Excel文件操作批量導入,模板文件規定好上傳哪些字段,用戶需要按照模板對應字段填寫;后臺開發者就會提供一個模板供下載進行編寫操作。
在開發工程中,可以提供一個模板文件存在,例如:
@ApiOperation("模板下載")@RequestMapping(value
= "/template", method
= RequestMethod.GET
)@ApiImplicitParams({@ApiImplicitParam(name
= "ukey", value
= "ukey", dataType
= "string", paramType
= "query", required
= true) })private RestResponse getTemplate(@Ukey @RequestParam(name
= "ukey", required
= true) String ukey
,HttpServletResponse res
, HttpServletRequest req
) throws IOException {ShiroUser user
= (ShiroUser) SecurityUtils.getSubject().getPrincipal();RestResponse response
= new RestResponse();if (user
== null || user
.getUserBelong() == null) {response
.setCode(ResultCode.NO_LOGINED
);response
.setMessage("登錄信息失效,請重新登錄");return response
;}String fileName
= "slot_template.xlsx";String path
= getClass().getResource("templates/" + fileName
).getPath();OutputStream os
= res
.getOutputStream();try {String agent
= (String) req
.getHeader("USER-AGENT");if (agent
!= null && agent
.indexOf("MSIE") == -1 && agent
.indexOf("like Gecko") == -1) {String enableFileName
= "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName
.getBytes("UTF-8"))))+ "?=";res
.setHeader("Content-Disposition", "attachment; filename=" + enableFileName
);} else { String enableFileName
= URLEncoder.encode(fileName
, "UTF-8");res
.setHeader("Content-Disposition", "attachment; filename=" + enableFileName
);}os
.write(FileUtils.readFileToByteArray(new File(path
)));os
.flush();} finally {
總結
以上是生活随笔為你收集整理的JAVA 文件下载:模板下载的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。