/**下载模版 * @param response * @throws Exception */ @RequestMapping(value="/downExcel") public void downExcel(HttpServletResponse response)throws Exception{ FileDownload.fileDownload(response, PathUtil.getClasspath() + Const.FILEPATHFILE + "Users.xls", "Users.xls"); } public class FileDownload { /** * @param response * @param filePath//文件完整路径(包括文件名和扩展名) * @param fileName//下载后看到的文件名 * @return 文件名 */ public static void fileDownload(final HttpServletResponse response, String filePath, String fileName) throws Exception{ byte[] data = FileUtil.toByteArray2(filePath); fileName = URLEncoder.encode(fileName, "UTF-8"); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream;charset=UTF-8"); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); outputStream.write(data); outputStream.flush(); outputStream.close(); response.flushBuffer(); } } /** * 读取到字节数组2 * * @param filePath * @return * @throws IOException */ public static byte[] toByteArray2(String filePath) throws IOException { File f = new File(filePath); if (!f.exists()) { throw new FileNotFoundException(filePath); } FileChannel channel = null; FileInputStream fs = null; try { fs = new FileInputStream(f); channel = fs.getChannel(); ByteBuffer byteBuffer = ByteBuffer.allocate((int) channel.size()); while ((channel.read(byteBuffer)) > 0) { // do nothing // System.out.println("reading"); } return byteBuffer.array(); } catch (IOException e) { e.printStackTrace(); throw e; } finally { try { channel.close(); } catch (IOException e) { e.printStackTrace(); } try { fs.close(); } catch (IOException e) { e.printStackTrace(); } } }
Java 下载文件模板
最新推荐文章于 2025-06-27 09:07:30 发布