Java可以通過以下步驟實現文件上傳功能:
以下是一個簡單的示例代碼:
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 獲取上傳的文件
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
// 指定上傳文件保存的路徑
String savePath = "C:/uploads/" + fileName;
// 將上傳文件保存到服務器指定路徑
try (InputStream inputStream = filePart.getInputStream();
FileOutputStream outputStream = new FileOutputStream(savePath)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException ex) {
// 處理上傳文件保存失敗的異常
}
// 處理文件上傳完成后的邏輯
response.getWriter().println("文件上傳成功!");
}
}
在上述示例中,通過@WebServlet注解將Servlet映射到"/upload"路徑,當用戶提交包含文件的表單時,請求會被轉發到該Servlet處理。在doPost()方法中,首先通過HttpServletRequest的getPart()方法獲取上傳的文件部分,然后使用Part對象的getSubmittedFileName()方法獲取上傳文件的文件名。接下來,將上傳的文件保存到服務器指定路徑,最后返回上傳成功消息給用戶。