21xrx.com
2024-11-22 18:59:02 Friday
登录
文章检索 我的文章 写文章
Java实现上传图片功能的代码分享
2023-06-10 17:31:42 深夜i     --     --

我最近在学习Java,最近遇到了一个问题:如何在Java中实现上传图片功能。经过一番学习和实践,我终于掌握了上传图片的代码实现方法,下面就来和大家分享一下。

首先,上传图片涉及到的关键词是:HttpServletRequest、Part、FileOutputStream。HttpServletRequest是JavaWeb中的一个接口,它提供了获取HTTP请求相关信息的方法。Part代表一个上传文件,它包含了文件的详细信息,例如文件名、文件大小等。FileOutputStream是Java IO中的一个类,它可以往文件中写入数据。

下面是我实现上传图片的Java代码:


@WebServlet("/uploadImage")

@MultipartConfig

public class UploadServlet extends HttpServlet {

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

    Part filePart = request.getPart("image"); // 获取上传文件

    String fileName = filePart.getSubmittedFileName(); // 获取文件名

    String savePath = request.getServletContext().getRealPath("/image"); // 获取文件保存的路径

    OutputStream out = new FileOutputStream(new File(savePath + File.separator + fileName)); // 创建文件输出流

    InputStream in = filePart.getInputStream(); // 创建输入流

    byte[] buffer = new byte[1024]; // 创建缓冲区

    int length = -1;

    while ((length = in.read(buffer)) != -1) {

      out.write(buffer, 0, length);

    }

    in.close();

    out.close();

    response.getWriter().println("图片上传成功!");

  }

}

首先,我们通过@WebServlet注解将这个Servlet映射到了/uploadImage路径上。@MultipartConfig注解告诉了Java这个Servlet会接收 multipart/form-data 类型的请求,也就是文件上传请求。

接着,在doPost方法中,我们通过HttpServletRequest的getPart方法获取了上传的文件,然后通过getSubmittedFileName方法获取了文件名。接下来,我们获取了这个Web应用程序的根目录,并在根目录下创建了一个名为image的文件夹。然后,我们创建了一个FileOutputStream对象和一个InputStream对象,分别用于将文件写入磁盘和读取上传的文件。最后,我们通过循环从输入流中读取字节数据,并将数据写入到输出流中,完成文件上传。

通过这段代码,我们成功实现了Java中上传图片的功能。我希望这篇文章能够对正在学习Java的朋友有所帮助。

  
  

评论区

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