21xrx.com
2024-12-23 01:46:01 Monday
登录
文章检索 我的文章 写文章
最近在开发一个网站
2023-06-12 23:13:02 深夜i     --     --
Java 上传文件和

最近在开发一个网站,需要实现用户上传图片到服务器的功能。我选择使用 Java 来完成这个任务。如果你也在寻找如何将图片上传到服务器的方法,那么你来对地方了。

我使用的技术是 Servlet 和 JSP。下面是示例代码:

首先,在 jsp 页面中插入一个表单:


 

 

这个表单中有一个文件输入项和一个提交按钮。在表单的 `action` 属性中定义了将表单数据提交到的 URL。在这个例子中,我们将数据提交到名为 `upload` 的 Servlet。

然后,在 Servlet 中,处理上传的文件:


@WebServlet("/upload")

@MultipartConfig

public class UploadServlet extends HttpServlet {

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

  String fileName = null;

  for (Part part : request.getParts()) {

   fileName = getFileName(part);

   part.write(getServletContext().getRealPath("/upload/" + fileName));

  }

  response.sendRedirect("success.jsp");

 }

 

 private String getFileName(final Part part) {

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

  for (String content : partHeader.split(";")) {

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

    return content.substring(content.indexOf('=') + 1).trim().replace("\"", "");

   }

  }

  return null;

 }

}

在 Servlet 中,我们使用了 `@MultipartConfig` 注解来告诉容器这个 Servlet 是要处理多部分请求的。这是因为我们将接收一个文件上传的表单。

`doPost` 方法中,我们使用 `request.getParts()` 方法来获取所有上传的文件的 Part 对象。然后,我们将每个 Part 的内容写入到服务器上的一个文件中。在这个例子中,我们将这些文件保存到了名为 `upload` 的目录下。最后,我们使用 `response.sendRedirect` 方法将页面重定向到一个叫做 `success.jsp` 的 JSP 页面。

最后,我们来看一下 `getFileName` 方法。这个方法用来从 Part 对象的 headers 中获取上传文件的文件名。这是一个需要处理的小细节,但它确实很重要。

在上面的代码中,我使用了三个 Servlet。所以,我的文章标题为:Java Servlet 实现文件上传。

  
  

评论区

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