Java Web文件的上傳和下載是Web開發中常用的功能。通過上傳文件,可以讓用戶將自己的資料、照片等上傳到服務器上。而下載文件,則允許用戶從服務器上下載所需的文件。
下面我們來看一下如何在Java Web中實現文件的上傳和下載。
上傳文件的實現: @RequestMapping(value="/uploadFile", method=RequestMethod.POST) @ResponseBody public String uploadFileHandler(@RequestParam("file") MultipartFile file) { String fileName = file.getOriginalFilename(); try { // 文件保存路徑 String filePath = "/upload/" + fileName; // 轉存文件 file.transferTo(new File(filePath)); return "上傳成功"; } catch (Exception e) { return "上傳失敗"; } }
首先,在Controller中添加一個處理文件上傳的方法。在該方法中,通過@RequestParam注解獲取上傳的文件對象,然后獲取上傳文件的文件名。接下來,根據需要保存的路徑創建一個文件對象,調用MultipartFile提供的方法將上傳的文件保存到指定位置即可。
下載文件的實現: @RequestMapping(value="/downloadFile", method=RequestMethod.GET) public void downloadFile(HttpServletRequest request, HttpServletResponse response) { String fileName = "example.txt"; String filePath = "/upload/" + fileName; File file = new File(filePath); if(file.exists()) { response.setContentType("application/octet-stream"); response.setContentLength((int)file.length()); response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\""); try(InputStream inputStream = new BufferedInputStream(new FileInputStream(file)); OutputStream outputStream = response.getOutputStream()) { byte[] buffer = new byte[1024]; int len = 0; while ((len = inputStream.read(buffer)) >0) { outputStream.write(buffer, 0, len); } } catch (Exception e) { e.printStackTrace(); } } }
下載文件同樣需要在Controller中添加一個處理下載請求的方法。在該方法中,根據需要下載的文件名和保存路徑創建一個文件對象,然后設置HTTP響應頭信息。最后,使用Java IO標準庫讀取文件內容,并將內容寫入到HTTP響應輸出流中即可。
以上就是Java Web文件上傳和下載的實現方法。使用這些方法可以方便地實現文件上傳和下載功能,為Web開發工作提供便利。