Java File Upload to a Folder

2025年5月10日 | 阅读 5 分钟

文件在每种编程语言中都起着至关重要的作用。为了处理文件,每位开发人员都应该了解如何在 Java 或其他编程语言中实现文件上传功能。

在本节中,我们将学习如何在 Java 中实现文件上传功能,并将了解如何将文件上传到文件夹

Java 中,我们使用单个 Servlet 和一个 HTML 表单来创建到 Servlet 的文件上传请求。我们实现一个简单的 HTML 表单,其中包含两个字段:文件和目标。类型为 File 的输入字段允许用户从系统中浏览文件。从系统中选择文件后,我们通过 POST 请求将文件发送到服务器。我们在表单中添加了两个限制:enctype="multipart/form-data"method="POST"

有了这些限制,请求就会以编码形式发送到服务器。Servlet 处理 POST 请求,处理传入的文件数据,并从流中提取文件。目标定义了我们需要将文件保存在系统中的位置路径。当单击上传按钮时,数据将被发布到 Servlet,然后 Servlet 将文件存储到指定位置。

HTML 表单的代码如下:

index.html

输出

Java File Upload to a Folder

POST 和 GET 是我们可以在提交表单时使用的两种方法。在这里,当我们提交表单时,浏览器会将所有部分组合在一起进行流式传输。每个部分定义表单的一个字段。

在上面的代码中,我们使用了两个注解:@WebServlet(具有 name 和 urlPatterns 属性)和 @MultipartConfig

@WebServlet 和 @MultipartConfig 注解分别用于定义 Servlet 映射和指示 Servlet 期望使用 multipart/form-data MIME 类型发出的请求。

Servlet 执行以下步骤将文件数据存储到目标文件夹:

  1. Servlet 的 saveFileToFolder 方法从请求中检索位置和文件。
  2. 之后,它使用 getFileName() 从文件部分获取文件名。
  3. Servlet 创建 FileOutputStream 类的实例,并使用它将文件存储到指定位置。
  4. try 部分处理将文件存储到指定位置的代码,catch 部分处理无法存储文件的错误。

FileUploadServletExample.java

为了构建、打包、部署和运行文件上传程序,我们可以使用 NetBeans、Eclipse 或 Ant。对于 NetBeans,我们使用以下步骤:

  • 文件菜单中选择 打开项目。这将打开 项目对话框
  • 打开项目对话框中,导航到 tut-install/examples/web/
  • 从该目录中,选择 fileupload 文件夹。
  • 勾选 设为主项目 复选框,然后单击 打开项目
  • 在“项目”选项卡中,右键单击 fileupload 并选择“部署”。

现在,导航到浏览器并输入以下 URL:

https://:8080/fileupload/

输入 URL 并按 回车 键后,将打开我们上面创建的 HTML 表单。我们可以浏览系统并选择一个文件上传到所需位置。在目标字段中,输入我们需要存储该文件的目录路径。该目录必须已在系统中创建并且必须是可写的。如果我们未在目标字段中设置任何内容而单击 上传 按钮,则会引发异常。

当单击上传按钮时,将向 Servlet 发送 POST 请求,它会将文件复制到目标文件夹。

单击上传按钮后,转到指定目录并验证上传的文件是否存在。

Java File Upload to a Folder