Java EE服务端生成文件并保存在指定目录下

  需求来源数据库

  一个数据管理系统,页面以Extjs实现,一张有数据的表,表的每行最后一列有按钮,点击按钮能够根据对应的数据生成一个报表供客户端下载。数据库中有一张表记录了全部已经生成的报表的信息逻辑是这样的:服务器

    • 点击按钮,向controller层发送请求
    • controller经过Service去数据库查询,若是该报表存在,则直接返回下载,若是不存在,则先生成报表,而后将报表上传到服务器并提供下载

  因为入坑不久,分红几个小试验来作吧  ide

   首先,实如今服务端生成文件并保存至指定的文件路径下:url

 1 @WebServlet(urlPatterns = "/generate")  2 public class getDownTest extends HttpServlet {  3  @Override  4     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  5  doPost(req, resp);  6  }  7 
 8  @Override  9     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 10         String savePath = req.getServletContext().getRealPath("/upload"); 11         System.out.println("获取到的文件上传的路径为:"+savePath); 12 
13         File fileDir = new File(savePath); 14         //判断上传文件的保存目录是否存在
15         if (!fileDir.exists() && !fileDir.isDirectory()){ 16  fileDir.createNewFile(); 17             System.out.println(savePath+"目录不存在,须要建立"); 18             //建立牡蛎
19  fileDir.mkdir(); 20  } 21 
22         //文件写做时间
23         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 24         String fileWriteTime = dateFormat.format(new Date()); 25         String tmpFileName = savePath + "\\" + fileWriteTime +".txt"; 26         System.out.println("临时文件名:==="+tmpFileName); 27 
28         File file = new File(tmpFileName); 29         //判断上传文件的保存目录是否存在
30         if (!file.exists()){ 31  file.createNewFile(); 32             System.out.println("临时文件建立不成功"); 33  } 34 
35         FileWriter fileWriter = new FileWriter(file,true); 36 
37         //流的方式
38         BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 39         bufferedWriter.write("文件写入时间:\r\n"+fileWriteTime); 40  bufferedWriter.close(); 41  fileWriter.close(); 42 
43         //返回文件
44         resp.addHeader("Content-Disposition","attachment;filename="+fileWriteTime+".txt"); 45  } 46 }

而后,而后实现asperReport自动生成报表spa

相关文章
相关标签/搜索