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

相關文章
相關標籤/搜索