javaweb实现文件上传示例代码

yizhihongxing

下面是javaweb实现文件上传的完整攻略:

1. 准备工作

在实现文件上传之前,需要先通过一些准备工作来确保程序能够正确运行:

1.1 配置servlet-api.jar文件

确保下载并配置servlet-api.jar文件,该文件包含了用于编写JavaWeb开发的类。

1.2 配置服务器环境

使用基于Java的web服务器(如Tomcat)来运行JavaWeb应用,确保能正常快速启动服务器。

1.3 熟悉文件上传相关类的使用

JavaWeb提供了一些用于文件上传的类和方法,需要熟悉它们的使用。

2. 实现文件上传的步骤

实现文件上传的步骤如下:

2.1 获取上传文件

使用FileItemFactory类的实现类DiskFileItemFactory,可以获取上传文件的相关信息并保存到一个List<FileItem>集合中,其中FileItem表示上传的每个文件。

//创建FileItemFactory实例
FileItemFactory factory = new DiskFileItemFactory();
//创建servlet文件上传对象
ServletFileUpload upload = new ServletFileUpload(factory);
//定义上传文件大小
upload.setFileSizeMax(10 * 1024 * 1024);//10M
//获取上传文件列表
List<FileItem> uploadItems = upload.parseRequest(request);

2.2 处理上传文件

对于每一个上传的文件,可以通过FileItem类提供的方法获取文件名、文件大小、文件类型、上传时间等相关信息。同时可通过FileItem.write()方法将文件保存到本地磁盘。

//遍历上传的文件
for(FileItem item : uploadItems) {
    //获取原文件名
    String fileName = item.getName();
    //获取文件大小
    Long fileSize = item.getSize();
    //获取文件类型
    String contentType = item.getContentType();
    //获取上传时间
    Date uploadDate = new Date(item.getLastModifiedTime());
    //保存文件到本地磁盘(假设保存到D盘upload目录下)
    File file = new File("D:/upload/" + fileName);
    item.write(file);
}

3. 示例说明

3.1 实现单个文件上传

在页面中添加一个文件上传表单,用户选择上传的文件后,将其提交到服务器,在服务器端解析文件并保存到本地磁盘。

<form action="UploadServlet" method="post" enctype="multipart/form-data">
    文件:<input type="file" name="file"><br>
    <input type="submit" value="上传">
</form>

在服务器端实现代码如下:

public class UploadServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //创建FileItemFactory实例
        FileItemFactory factory = new DiskFileItemFactory();
        //创建servlet文件上传对象
        ServletFileUpload upload = new ServletFileUpload(factory);
        //定义上传文件大小
        upload.setFileSizeMax(10 * 1024 * 1024);//10M
        try {
            //获取上传文件列表
            List<FileItem> uploadItems = upload.parseRequest(request);
            //遍历上传的文件
            for(FileItem item : uploadItems) {
                //获取文件名
                String fileName = item.getName();
                //保存文件到本地磁盘(假设保存到D盘upload目录下)
                File file = new File("D:/upload/" + fileName);
                item.write(file);
            }
            response.getWriter().println("上传成功!");
        } catch (Exception e) {
            response.getWriter().println("上传失败!");
        }
    }
}

3.2 实现多个文件上传

与单个文件上传类似,只需要在HTML表单中添加多个文件上传框即可。

<form action="BatchUploadServlet" method="post" enctype="multipart/form-data">
    第1个文件:<input type="file" name="file1"><br>
    第2个文件:<input type="file" name="file2"><br>
    第3个文件:<input type="file" name="file3"><br>
    <input type="submit" value="上传">
</form>

在服务器端,只需要对上传的文件进行遍历保存即可。

public class BatchUploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //创建FileItemFactory实例
        FileItemFactory factory = new DiskFileItemFactory();
        //创建servlet文件上传对象
        ServletFileUpload upload = new ServletFileUpload(factory);
        //定义上传文件大小
        upload.setFileSizeMax(10 * 1024 * 1024);//10M
        try {
            //获取上传文件列表
            List<FileItem> uploadItems = upload.parseRequest(request);
            //遍历上传的文件
            for(FileItem item : uploadItems) {
                //获取文件名
                String fileName = item.getName();
                //保存文件到本地磁盘(假设保存到D盘upload目录下)
                File file = new File("D:/upload/" + fileName);
                item.write(file);
            }
            response.getWriter().println("上传成功!");
        } catch (Exception e) {
            response.getWriter().println("上传失败!");
        }
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javaweb实现文件上传示例代码 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 解决JSP开发中Web程序显示中文三种方法

    讲解“解决JSP开发中Web程序显示中文三种方法”的完整攻略,包含以下内容: 问题描述 在JSP开发过程中,遇到中文输出乱码的情况较常见。所以,有必要了解如何解决JSP开发中Web程序显示中文的问题。 解决方法 解决Web程序中显示中文的问题有多种方法,一般来说可以采用以下三种: 方法一:使用response.setContentType()方法设定字符编码…

    Java 2023年6月15日
    00
  • JDK安装配置教程

    JDK安装配置教程 1. 安装JDK 要使用Java开发应用程序,需要先安装Java开发工具包(JDK)。JDK可以从Oracle官网下载,下载地址为:https://www.oracle.com/technetwork/java/javase/downloads/index.html。 根据系统位数选择相应版本的JDK下载,安装程序为exe或dmg(如果是…

    Java 2023年5月26日
    00
  • SpringBoot实现多数据源的切换实践

    下面是详细讲解“SpringBoot实现多数据源的切换实践”的完整攻略。 1. 背景 在实际应用中,经常需要使用多个数据源来处理不同的业务场景。而SpringBoot作为一款优秀的Java开发框架,提供了简单易用的多数据源配置方式,能够方便地实现多数据源切换。 2. 实现方法 2.1 配置文件 在 application.properties 或者 appl…

    Java 2023年5月20日
    00
  • Java 实战项目之疫情防控管理系统详解

    Java 实战项目之疫情防控管理系统详解 1. 项目介绍 该项目是一个基于Java的疫情防控管理系统。通过该系统,用户可以实现疫情病例的查询、疫情防控信息的发布和员工健康信息的管理等功能。 2. 技术栈 2.1 前端技术栈 HTML/CSS/JavaScript jQuery Bootstrap 2.2 后端技术栈 Java Spring/Spring MV…

    Java 2023年5月23日
    00
  • java迭代器移除元素出现并发修改异常的原因及解决

    Java迭代器是用于遍历集合类元素的重要工具,然而有时可能会在使用过程中遇到“并发修改异常”(ConcurrentModificationException),指的是在使用迭代器访问集合过程中,通过集合自身的某些方法(如add、remove、clear等)修改了集合元素而导致的异常。本文将讲解这个异常的原因及解决方法,同时会提供两个示例来解释如何在实际操作中…

    Java 2023年5月27日
    00
  • JavaWeb工程web.xml基本配置过程解析

    JavaWeb工程中的web.xml文件是一个重要的配置文件,它用于配置JavaWeb应用程序的部署和运行参数。本文将对JavaWeb工程web.xml基本配置过程进行逐一解析。 引言 web.xml文件是JavaWeb工程的核心配置文件,它包含了所有的Servlet、Filter、Listener和JSP等组件的声明和配置信息。 web.xml文件中的所有…

    Java 2023年6月16日
    00
  • SpringMVC中常用参数校验类注解使用示例教程

    SpringMVC中常用参数校验类注解使用示例教程 在SpringMVC中,参数校验是非常重要的,它可以帮助我们在控制器中对请求参数进行校验,确保数据的有效性和安全性。本文将详细介绍SpringMVC中常用的参数校验类注解,并提供两个示例说明。 常用参数校验类注解 在SpringMVC中,常用的参数校验类注解有以下几种: @NotNull:用于校验参数不为n…

    Java 2023年5月17日
    00
  • @Controller、@RestController注解区别详解

    下面是关于“@Controller、@RestController注解区别详解”的完整攻略。 一、@Controller注解 @Controller是SpringMVC中常用的控制器注解,用于标记此类为控制器,能够处理用户的请求并返回相应的数据。 1.1 示例代码 @Controller @RequestMapping("/hello")…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部