zoukankan      html  css  js  c++  java
  • SpringMVC 之 上传文件

      一、需求:

      利用SpringMVC实现上传文件的功能

      二、思路:

      1.我们可以在SpringMVC中,通过配置一个MultipartResolver来上传文件。

      2.通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。

      三、参考

      1.SpringMVC学习:https://how2j.cn/k/springmvc/springmvc-springmvc/615.html?p=36286

      四、步骤

      1.添加pom文件

      commons-fileupload

      commons-fileupload

      1.3.1

      commons-io

      commons-io

      2.3

      2.JSP页面

      上传页面,需要在src/main/resources/views下面新建一个upload.jsp文件

      3.跳转页面

      添加能跳转到upload页面的ViewController。需要在MyMvcConfig.java下面添加。

      // 添加转向upload页面的ViewController

      public void addViewControllers(ViewControllerRegistry registry) {

      registry.addViewController("/index").setViewName("/index");

      registry.addViewController("/toUpdate").setViewName("/upload");

      }

      4.MultipartResolver配置

      同样,在MyMvcConfig.java下面添加。

      // MultipartResolver配置

      @Bean

      public MultipartResolver multipartResolver() {

      CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();

      multipartResolver.setMaxUploadSize(1000000);

      return multipartResolver;

      }

      5.控制器(控制层)

      package com.eleven.controller;

      import java.io.File;

      import java.io.IOException;

      import org.apache.commons.io.FileUtils;

      import org.springframework.stereotype.Controller;

      import org.springframework.web.bind.annotation.RequestMapping;

      import org.springframework.web.bind.annotation.RequestMethod;

      import org.springframework.web.bind.annotation.ResponseBody;

      import org.springframework.web.multipart.MultipartFile;

      @Controller // 在@controller注解中,返回的是字符串,或者是字符串匹配的模板名称,即直接渲染视图,与html页面配合使用的

      public class UploadController {

      // @RequestMapping:是用来处理地址映射的注解

      // value:指定请求的实际地址

      // method:指定请求的方法类型,有get、post、put、delete

      @RequestMapping(value = "/upload", method = RequestMethod.POST)

      // 使用MultipartFile file接收上传的文件

      // @ResponseBody:将java对象转为json格式的数据。

      public @ResponseBody String upload(MultipartFile file) {

      try {

      // 使用FileUtils.writeByteArrayToFile快速写文件到磁盘

      FileUtils.writeByteArrayToFile(new File("D:upload/" + file.getOriginalFilename()), file.getBytes());

      return "ok";

      } catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      return "wrong";

      }

      }

      }

      6.运行

      访问路径: http://localhost:8080/springmvc/upload 即可。

  • 相关阅读:
    时间选择器组件之table避坑指南
    ⼯⼚模式
    外观模式
    中介者模式+装饰器模式
    代理模式
    策略模式
    设计模式--------单例模式
    设计模式--------订阅/发布模式 (观察者)
    对ts的研究
    对react的研究20200724
  • 原文地址:https://www.cnblogs.com/djw12333/p/12029051.html
Copyright © 2011-2022 走看看