HttpServletResponse response = PortalUtil .getHttpServletResponse(actionResponse); byte[] data =null; try{ data = FileUtil.toByteArray2(filePath); }catch (FileNotFoundException e) { // TODO: handle exception response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); response.getWriter().print("<script>alert('文件未找到');window.close();</script>"); return ; } String fileName = "设备台账批量导入模板.csv"; fileName = URLEncoder.encode(fileName, "UTF-8"); fileName = new String(fileName.getBytes("utf-8"),"iso8859-1"); 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();
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(); } } }