Java Web編程通過HTTP協議來實現數據交互,其中下載和上傳是Web應用常用的功能之一。Java提供了許多庫和框架來方便地處理這些操作。
1. 文件下載
在Java Web中,文件下載的實現可以通過以下步驟:
//1.獲取文件路徑 String filePath = getServletContext().getRealPath("/file/sample.pdf"); File downloadFile = new File(filePath); //2.新建下載流 FileInputStream inStream = new FileInputStream(downloadFile); //3.設置響應頭信息和下載文件名 response.setContentType("application/pdf"); response.setContentLength((int) downloadFile.length()); String headerKey = "Content-Disposition"; String headerValue = String.format("attachment; filename=\"%s\"", downloadFile.getName()); response.setHeader(headerKey, headerValue); //4.輸出下載文件到響應流中 ServletOutputStream outputStream = response.getOutputStream(); byte[] buffer = new byte[4096]; int bytesRead = -1; while ((bytesRead = inStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } //5.關閉輸入輸出流 inStream.close(); outputStream.close();
2. 文件上傳
文件上傳的實現需要使用一些第三方庫,例如commons-fileupload。以下是文件上傳的簡單例子:
//1.新建文件上傳對象 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload fileUpload = new ServletFileUpload(factory); //2.解析上傳請求 List<FileItem> items = fileUpload.parseRequest(request); //3.處理上傳的文件 for (FileItem item : items) { if (!item.isFormField()) { String fileName = item.getName(); long fileSize = item.getSize(); File uploadedFile = new File("C:\\uploads\\" + fileName); item.write(uploadedFile); } }
以上就是Java Web中文件下載和上傳的基本實現。在實際項目中,可能需要根據具體需求對代碼進行修改和優化。