zoukankan      html  css  js  c++  java
  • Spring使用经验之StandardServletMultipartResolver实现文件上传的基本配置

    Note:Spring使用版本是4.1.6.RELEASE

    1. 在实现了AbstractAnnotationConfigDispatcherServletInitializer的类中重载customizeRegistration方法,注册MultipartConfig

    public class ***WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

      @Override
      protected void customizeRegistration(Dynamic registration) {
        registration.setMultipartConfig(new MultipartConfigElement("D:/home/midware/tmp")); // 该目录是临时目录,必须真实存在,不然报500错误
      }

      @Override
      protected Class<?>[] getServletConfigClasses() {
        return new Class[] { MvcConfig.class };
      }

    }

    2. 在实现了WebMvcConfigurerAdapter的类中注册StandardServletMultipartResolver

    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = { "***" })
    public class MvcConfig extends WebMvcConfigurerAdapter {

      @Bean
      public ViewResolver irViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/pages/");
        resolver.setSuffix(".jsp");
        resolver.setOrder(10);
        return resolver;
      }

      @Bean
      public MultipartResolver multipartResolver() {
        return new StandardServletMultipartResolver();
      }

    }

    3. 实现Upload的业务逻辑的Controller
    @Controller
    public class FileUploadController {

      @RequestMapping(value = "/upload", method = RequestMethod.POST)
      public String upload(@RequestPart("file") MultipartFile file, HttpServletRequest request) throws IllegalStateException, IOException {
        System.out.println(file.getContentType());
        System.out.println(file.getName());
        System.out.println(file.getOriginalFilename());
        file.transferTo(new File("D:/home/midware/upload", file.getOriginalFilename()));// 将上传文件写入到文件系统中
        return "result";
      }

      @RequestMapping(value = "/toupload", method = RequestMethod.GET)
      public String toUpload() {
        System.out.println("forward upload.jsp!");
        return "upload";
      }
    }

    4. 实现upload.jsp的页面,放在webapp/pages/下
    upload.jsp包含以下内容
    <form action="upload" method="post" enctype="multipart/form-data">
      <input type="file" name="file" />
      <input type="submit" value="Upload" />
    </form>

    5. 其他如web.xml,result.jsp等(略)

  • 相关阅读:
    升级:Logical Upgrade升级MySQL5.6.26
    基于GTID恢复误篡改数据
    mysql迁移:ibd表空间迁移库表
    mysql迁移:xtrabackup迁移mysql5.7.32
    Pycharm最新激活码2019
    转载:Prometheus+Grafana搭建HBase监控仪表盘
    总结《Elasticsearch源码解析和优化实战》第一讲
    yarn resourcemanager调优
    presto安装和集成kerberos的hive
    转载:shell expect实战实例
  • 原文地址:https://www.cnblogs.com/zjm701/p/6805419.html
Copyright © 2011-2022 走看看