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/"; InputStream inputStream = filePart.getInputStream(); Files.copy(inputStream, Paths.get(savePath + fileName), StandardCopyOption.REPLACE_EXISTING); // 返回上传成功的提示信息 response.getWriter().println("File uploaded successfully"); } }
示例代码:
@WebServlet("/upload") public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 创建一个文件工厂对象 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置文件上传的临时存储路径 String tempPath = "C:/temp/"; factory.setRepository(new File(tempPath)); // 创建文件上传处理器对象 ServletFileUpload upload = new ServletFileUpload(factory); try { // 解析请求,获取上传的文件列表 List<FileItem> items = upload.parseRequest(request); // 处理每个文件 for (FileItem item : items) { // 判断是否是普通表单字段还是文件字段 if (item.isFormField()) { String fieldName = item.getFieldName(); String fieldValue = item.getString(); // 处理普通表单字段的值 } else { // 处理文件字段 String fileName = item.getName(); String savePath = "C:/uploads/"; item.write(new File(savePath + fileName)); } } // 返回上传成功的提示信息 response.getWriter().println("File uploaded successfully"); } catch (Exception e) { e.printStackTrace(); response.getWriter().println("File upload failed"); } } }
以上是两种常见的Java文件上传的实现方法,开发者可以根据具体需求选择适合的方法。