Java是一種常用的編程語(yǔ)言,在服務(wù)器端上傳和下載文件是Java技術(shù)的一個(gè)基礎(chǔ)應(yīng)用。下面我們將介紹如何使用Java實(shí)現(xiàn)服務(wù)器端文件上傳和下載。
文件上傳
public class FileUploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) { try { //獲取表單中的文件數(shù)據(jù) Part part = request.getPart("file"); //獲取文件名 String fileName = part.getSubmittedFileName(); //保存文件到服務(wù)器 part.write("文件路徑" + fileName); response.getWriter().println("上傳成功!"); } catch (Exception e) { e.printStackTrace(); response.getWriter().println("上傳失??!"); } } }
文件下載
public class FileDownloadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) { try { //獲取文件路徑和名稱 String fileName = request.getParameter("fileName"); String filePath = "文件路徑" + fileName; //設(shè)置響應(yīng)頭 response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("gbk"), "iso-8859-1")); //將文件輸出到客戶端 OutputStream out = response.getOutputStream(); InputStream in = new FileInputStream(filePath); byte[] buffer = new byte[1024]; int len = -1; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } out.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } } }
以上代碼實(shí)現(xiàn)了文件上傳和下載的基本功能,但在實(shí)際應(yīng)用中,還需要考慮安全性、性能和用戶體驗(yàn)等方面。例如,文件上傳需要對(duì)文件類型、大小、重名等進(jìn)行驗(yàn)證和處理,文件下載需要對(duì)權(quán)限進(jìn)行控制、支持?jǐn)帱c(diǎn)續(xù)傳等。因此,在開發(fā)應(yīng)用時(shí)需要綜合考慮多種因素,保證功能穩(wěn)定、安全、高效。