21xrx.com
2024-09-17 03:31:02 Tuesday
登录
文章检索 我的文章 写文章
Java实现文件上传到服务器的代码
2023-06-15 18:51:17 深夜i     --     --
Java 文件上传 服务器 代码 HTML表单 multipart/form-data @MultipartConfig @WebServlet InputStream OutputStream

文章:在网页的开发中,文件上传是一个常见的功能需求。Java作为一种流行的编程语言,有许多库和框架可以帮助我们实现文件上传的功能。本篇文章将介绍如何使用Java编写文件上传到服务器的代码。

首先,要实现文件上传功能,我们需要在HTML表单中添加一个文件选择输入框,当用户选择一个文件后,该文件将被发送到服务器。接着,我们需要在服务器端编写Java代码来处理上传的文件。具体实现步骤如下:

1. 创建一个HTML表单,其中包含一个指向Java文件上传代码的action属性以及一个类型为“file”的输入框。

 

 

2. 在服务器端编写Java代码,处理上传的文件。

@WebServlet("/upload.java")

@MultipartConfig

public class UploadServlet extends HttpServlet {

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   response.setContentType("text/html");

   PrintWriter out = response.getWriter();

   try {

     Part filePart = request.getPart("file");

     String fileName = getFileName(filePart); // 获取上传文件的名称

     InputStream fileContent = filePart.getInputStream(); // 获取上传文件的输入流

     // 将文件保存到服务器中

     OutputStream outputStream = new FileOutputStream(new File("E:\\files\\" + fileName));

     int read = 0;

     byte[] bytes = new byte[1024];

     while ((read = fileContent.read(bytes)) != -1) {

      outputStream.write(bytes, 0, read);

     }

     out.println("

文件上传成功

");

   } catch (Exception ex) {

     out.println("

发生错误:" + ex.getMessage() + "

");

   }

  }

  // 获取上传文件的名称

  private String getFileName(Part part) {

   String contentDisp = part.getHeader("content-disposition");

   String[] items = contentDisp.split(";");

   for (String s : items) {

     if (s.trim().startsWith("filename")) {

      return s.substring(s.indexOf("=") + 2, s.length()-1);

     }

   }

   return "";

  }

}

我们使用@WebServlet注解指定上传文件的action,使用@MultipartConfig注解指定解析multipart/form-data类型的请求实体。在doPost()方法中,我们首先获取上传的文件输入流和文件名,然后将文件保存到服务器中。

3. 运行代码并测试文件上传功能。上传成功后,在服务器端保存一个名为“file.jpg”的文件。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复