两种java文件上传实例讲解

下面是详细讲解“两种java文件上传实例讲解”的攻略:

一、基于Spring MVC框架的文件上传实例

1. 在Maven项目配置中添加以下依赖:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.3.1.RELEASE</version>
</dependency>

<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>

<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.5</version>
</dependency>

2. 配置Spring MVC配置文件

在spring配置文件中,添加multipartResolver Bean,用来处理文件上传的请求。

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <property name="maxUploadSize" value="50000000"/>
</bean>

3. 编写Controller类

@Controller
public class UploadFileController {
  @RequestMapping(value="/uploadFile", method=RequestMethod.POST)
  public String uploadFileHandler(@RequestParam("file") MultipartFile file) {

    if (!file.isEmpty()) {
      try {
          byte[] bytes = file.getBytes();

          // 创建文件保存路径
          String path = "/tmp/" + file.getOriginalFilename();
          File serverFile = new File(path);
          BufferedOutputStream stream = new BufferedOutputStream(
                  new FileOutputStream(serverFile));
          stream.write(bytes);
          stream.close();

          System.out.println("You have successfully uploaded " + file.getOriginalFilename());
      } catch (Exception e) {
          System.out.println("You failed to upload " + file.getOriginalFilename() + " => " + e.getMessage());
      }
    } else {
        System.out.println("You failed to upload " + file.getOriginalFilename() + " because the file was empty.");
    }
    return "uploadFileSuccessView";
  }
}

4. 编写前端页面

<form method="post" enctype="multipart/form-data" action="/SpringMVCExample/uploadFile">
  <input type="file" name="file">
  <input type="submit" value="上传">
</form>

二、不依赖框架的文件上传实例

1. 前端页面

<form enctype="multipart/form-data" method="post" action="UploadServlet">
  <input type="file" name="fileToUpload" id="fileToUpload">
  <br>
  <input type="submit" value="Upload">
</form>

2. 服务器端Java代码

@WebServlet("/UploadServlet")
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
                 maxFileSize = 1024 * 1024 * 10, // 10MB
                 maxRequestSize = 1024 * 1024 * 50) // 50MB
public class UploadServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    InputStream inputStream = null;
    OutputStream outputStream = null;
    PrintWriter out = response.getWriter();

    try {
      Part filePart = request.getPart("file");
      inputStream = filePart.getInputStream();

      File file = new File("C:/uploads/" + filePart.getSubmittedFileName());
      outputStream = new FileOutputStream(file);

      int read = 0;
      final byte[] bytes = new byte[1024];

      while ((read = inputStream.read(bytes)) != -1) {
        outputStream.write(bytes, 0, read);
      }
      System.out.println("New file " + file.getName() + " created at " + file.getAbsolutePath());
      out.println("Received file=" + file.getName());
    } catch (Exception e) {
      out.println("Error=" + e.getMessage());
    } finally {
      if (inputStream != null) inputStream.close();
      if (outputStream != null) outputStream.close();
      if (out != null) out.close();
    }
  }
}

这是两种Java文件上传的实例,总体来说,使用Spring MVC框架上传文件更为简便,而不依赖框架的上传方式更为灵活,可以在任何Java Web项目中使用。我们可以根据实际需求,选择合适的文件上传方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:两种java文件上传实例讲解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • tomcat logs 目录下各日志文件的解析(小结)

    tomcat logs 目录下各日志文件的解析(小结) Tomcat是一个流行的Web应用服务器,它会生成各种日志文件。在Tomcat logs 目录下,通常会有以下几类日志文件: catalina.out:Tomcat的控制台输出日志文件,包含了Tomcat启动时的各种信息。 localhost.<日期>.log:每个Web应用程序的日志文件,…

    Java 2023年6月2日
    00
  • java实现oracle插入当前时间的方法

    要使用Java实现Oracle插入当前时间的方法,可以使用Java API将当前时间作为字符串并将其插入Oracle数据库的日期字段。以下是实现此目的的步骤: 1. 准备数据库连接 在Java中,可以使用JDBC API来连接到Oracle数据库。请确保您已经下载了适当的Oracle JDBC驱动程序,并将其添加到您的Java应用程序的类路径中。 Strin…

    Java 2023年5月20日
    00
  • 什么是受检异常?

    什么是受检异常? 在Java中,对于可能会导致程序错误的代码,我们有时会在代码中使用异常机制进行处理,使得程序在运行时遇到问题时可以从异常处理代码块中恢复,继续执行后面的程序。而受检异常(Checked Exception)就是其中一种异常类型,它需要在代码中进行显式的处理,否则编译时就会报错。 受检异常的特点 受检异常与非受检异常(Unchecked Ex…

    Java 2023年4月27日
    00
  • jQuery+json实现的简易Ajax调用实例

    下面就详细讲解一下“jQuery+JSON实现的简易Ajax调用实例”的完整攻略。 什么事Ajax? 在讲解“jQuery+JSON实现的简易Ajax调用实例”之前,先来介绍一下Ajax。 Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。它通过在后台与服务器进行少量数据交换,就可以实现页面无刷新更新…

    Java 2023年6月15日
    00
  • 详解Java String字符串获取每一个字符及常用方法

    详解Java String字符串获取每一个字符及常用方法 获取每一个字符 在Java中,我们可以通过以下两种方式获取字符串中的每个字符: 1. 使用charArray方法 该方法将字符串转换为字符数组,然后遍历该数组即可获取每个字符。 示例代码如下: String str = "Hello World!"; char[] charArra…

    Java 2023年5月26日
    00
  • Java实现的模糊匹配某文件夹下的文件并删除功能示例

    那么接下来我会给你详细讲解Java实现的模糊匹配某文件夹下的文件并删除功能示例的完整攻略。 需求分析 我们首先来分析一下实现该功能的需求: 需要从指定文件夹中模糊匹配指定的文件名或者文件名的一部分; 对匹配到的所有文件进行删除。 基于以上需求,我们需要使用Java的文件操作相关API来实现该功能。 实现步骤 在实现该功能时,我们可以按照以下步骤来进行: 定义…

    Java 2023年5月19日
    00
  • kafka添加安全验证配置方式

    下面是详细讲解如何在Kafka中配置安全验证的完整攻略。 一、前置条件 在开始配置Kafka的安全验证之前,我们需要先满足以下的条件: 安装了Java环境 下载并安装了Kafka 配置了Kafka的基本参数 二、配置SSL/TLS SSL/TLS是Kafka中实现安全验证的一种常见方式,下面是配置SSL/TLS的步骤: 1. 自动生成SSL证书 Kafka提…

    Java 2023年5月20日
    00
  • JSP自定义标签-标签属性_动力节点Java学院整理

    JSP自定义标签-标签属性 在进行JSP页面开发时,我们经常会遇到需要使用一些自定义的标签来进行页面的处理和数据展示,JSP提供了自定义标签的功能,我们可以通过定义标签来扩展JSP标准标签库中所提供的标签,或者是自定义一些用于当前项目的标签。本篇攻略主要介绍如何在自定义标签中使用标签属性。 标签属性的定义 标签属性可以理解为标签中用于传递参数的占位符,它用于…

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