赞
踩
功能:返回本地的某个文件(本人做的是返回zip压缩包)
注意:接口上一定要使用GET请求@GetMapping()
核心代码:
/** * 将文件数据设置到响应头中返回 * @param dstFile 文件的绝对路径 * */ private void setResponseHeader(String dstFile) { ServletOutputStream output = null; try { String type = new MimetypesFileTypeMap().getContentType(dstFile); response.setContentType(type); response.setHeader("Content-Disposition", "attachment;fileName="+this.fileName + ".zip" ); response.setCharacterEncoding("utf-8"); File file = new File(dstFile); if (file.exists()) { FileInputStream fis = null; BufferedInputStream bis = null; byte[] buffer = new byte[4096]; fis = new FileInputStream(dstFile); bis = new BufferedInputStream(fis); OutputStream os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer, 0, i); i = bis.read(buffer); } try { bis.close(); fis.close(); // 删除临时文件 file.delete(); } catch (IOException e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); //导出错误 重定向到错误页面 try { response.sendRedirect(request.getContextPath() + "/error"); } catch (IOException e1) { e.printStackTrace(); } } finally { try { output.close(); } catch (IOException e) { output = null; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。