javaweb实现文件上传示例代码

下面是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日

相关文章

  • java实现把对象数组通过excel方式导出的功能

    要实现将Java对象数组导出成Excel文档,我们可以借助Apache POI库。下面是具体的攻略: 1. 引入POI依赖 首先需要在项目中引入POI依赖。可以使用Maven或Gradle构建工具,将以下依赖添加到项目中: <dependency> <groupId>org.apache.poi</groupId> &lt…

    Java 2023年5月20日
    00
  • servlet实现文件上传、预览、下载、删除功能

    准备工作 首先,在编写servlet实现文件上传、预览、下载、删除功能之前,需要先进行准备工作,包括: 建立一个Web项目 引入相关的jar包,如commons-fileupload.jar、commons-io.jar等 编写一个用于上传文档的html页面 定义文件上传后保存的路径 上传文件 上传文件是整个功能的核心部分,下面是实现文件上传的步骤: 2.1…

    Java 2023年6月15日
    00
  • java 定时器线程池(ScheduledThreadPoolExecutor)的实现

    针对“java 定时器线程池(ScheduledThreadPoolExecutor)的实现”,我将会给出以下的完整攻略: 线程池的概念 “线程池”即“ThreadPool”,是指在Java中为了更加有效地使用系统资源,而设计的多线程实现方法。其底层的实现原理是预先创建好若干个可用的线程,并放入池中等待调用。当有任务需要处理时,线程池会去从池中获取一个线程进…

    Java 2023年5月18日
    00
  • java操作oracle数据库示例

    以下是 Java 操作 Oracle 数据库的完整攻略: 环境 在开始之前,需要确定自己的开发环境中是否已经安装好 JDK 和 Oracle 数据库,并且已经配置好了相应的环境变量。如果没有,请先安装和配置好相应的软件和环境。 另外,如果需要在Java中操作Oracle数据库,还需要下载安装 ojdbc 驱动程序,将其放置于项目根目录下或指定的lib目录下。…

    Java 2023年5月19日
    00
  • Java中的Object类详细介绍

    Java中的Object类详细介绍 简介 在Java中,所有类都是Object类的直接或者间接子类。Object类是Java中的根类,它位于java.lang包中,几乎每个Java程序都会使用到Object类中的方法。Object类提供了通用的方法,这些方法可以被所有继承了Object类的类使用。 下面我们来详细了解一下Java中Object类的一些方法以及…

    Java 2023年5月26日
    00
  • Spring Boot/Angular整合Keycloak实现单点登录功能

    下面是Spring Boot/Angular整合Keycloak实现单点登录功能的完整攻略。 一、准备工作 1.安装并配置Java环境和Maven环境。 2.安装Keycloak,并创建相关的Realm和Client。 3.创建一个Angular项目,引入相关依赖。 二、配置Keycloak 1.打开Keycloak控制台,在Realm Setting中设置…

    Java 2023年5月20日
    00
  • JSP XMLHttpRequest动态无刷新及其中文乱码处理

    JSP XMLHttpRequest动态无刷新及其中文乱码处理,是前端开发中经常会遇到的问题之一。下面,我们将介绍一些方法来解决这个问题。 1. JSP动态无刷新 实现动态无刷新需要使用XMLHttpRequest对象。XMLHttpRequest对象被用于在web浏览器和web服务器之间传输数据。JSP实现动态无刷新的步骤一般如下: 步骤1:创建XMLHt…

    Java 2023年6月15日
    00
  • ASP.NET+Web服务实现软件共享

    ASP.NET是一种基于微软的.NET框架的Web开发技术,可以用来开发Web应用程序和Web服务。Web服务是一种通过网络调用的应用程序,可以与不同的平台和语言进行交互。因此,使用ASP.NET和Web服务可以实现软件的共享,方便多个平台和语言之间的数据传输和交互。 以下是实现软件共享的ASP.NET+Web服务攻略: 创建Web服务 首先需要创建一个AS…

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