springboot实战第四章-SpringMVC的文件上传配置

springboot实战第四章-SpringMVC的文件上传配置

SpringMVC的文件上传

文件上传是一个项目里经常要用到的功能,SpringMVC通过配置一个MultipartResolver来上传文件。

在Spring的控制器中,通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。

在这里大概进行5步操作,就可以愉快的实现文件的上传

1.首先添加依赖

这个在第四章开始的时候我已经添加好了,可以简化io的操作

springboot实战第四章-SpringMVC的文件上传配置

2.上传页面,在views下新建upload.jsp页面

springboot实战第四章-SpringMVC的文件上传配置

3.添加转向upload页面的ViewController

 @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/index").setViewName("index");
        registry.addViewController("/toUpload").setViewName("upload");
    }

4.MultipartResolver配置

在这里要注意中文乱码问题,这时候我还没配置全局的字符编码,很容易遇到乱码问题

/**
     * 上传文件配置
     * 注意这里可以设置编码,防止中文乱码
     */
    @Bean
    public MultipartResolver multipartResolver(){
        CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver();
        multipartResolver.setMaxUploadSize(1000000);
        multipartResolver.setDefaultEncoding("UTF-8");
        return multipartResolver;
    }

5.控制器

这里主要是接收到文件后放在磁盘上,可以查看磁盘文件来验证结果

package com.just.springmvc4.controller;

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
public class UploadController {
    @RequestMapping(value = "/upload",method = RequestMethod.POST)
    public String uploadFile(MultipartFile file){
        try {
            FileUtils.writeByteArrayToFile(new File("D:\\file\\"+file.getOriginalFilename()),file.getBytes());
            return "all is well";
        }catch (Exception e){
            e.printStackTrace();
            return "wrong";
        }
    }
}

//TODO:这里还没有尝试多文件的上传,有空试下多个文件的上传操作再来展示一波

书接上回,尝试下多文件的上传,很简单,截几张图就能明白

1.jsp里面,采用多个input,每个name都一样,这个是很重要的,因为后端配置的是一个数组,只匹配一个name

springboot实战第四章-SpringMVC的文件上传配置

2.后端controller

springboot实战第四章-SpringMVC的文件上传配置

ok,all done.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100312.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • c语言buffer用法_c++ stringbuffer

    c语言buffer用法_c++ stringbufferringbuffer实质上是在一块连续的内存上对数据进行写入和读取,只是在写入和读取的时候有些不同。每次读取的时候都要从开辟空间的地址加上一个读取的偏移量读取,相对应的,写入的时候也要从开辟空间的地址加上一个写入的偏移量来写入。重点也就在读取和写入数据上面。下面从代码上面来说一下。首先定义一个ringbuffer的结构体typedefstruct{uint8_t*buf…

    2022年9月11日
  • SpringBoot项目打成war和jar的区别「建议收藏」

    SpringBoot项目打成war和jar的区别「建议收藏」首先给大家来讲一个我们遇到的一个奇怪的问题:1.我的一个springboot项目,用mvninstall打包成jar,换一台有jdk的机器就直接可以用java-jar项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了?2.然后我打包成war放进tomcat运行,发现端口号变成tomcat默认的8080(我在server.port中设置端口8090)项目名称也…

    2022年5月10日
  • Nginx简单配置转发

    问题分析一台服务器运行多个项目的时候会遇到这样的问题:如果使用同一个tomcat来启动不同项目的话,项目之间会相互影响;如果用多个tomcat运行项目,那么在访问项目的时候又不能都使用80端口,还要加上端口号,显得很麻烦又不美观。考虑用Nginx实现转发,目标是通过访问不同的域名实现对不同tomcat上运行的项目的跳转,例如访问www.a.com跳转到本地的8088端口的项目,访问www…

    2022年4月5日
  • webstorm激活码最新2021【中文破解版】

    (webstorm激活码最新2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

    2022年3月28日
  • cockpit二次开发_laravel api

    cockpit二次开发_laravel api背景:最近公司要基于cockpit,来定制自己的一个服务器管理web应用。嗯。。cockpit是啥?能干嘛?我要拿它干嘛?如你所见,我此刻是懵逼的。cockpit了解我熟练的打开了百度又打开了bing哦吼,二度懵逼。经过几番了解,大概是知道了LinuxCockpit是一个基于Web界面的应用,它提供了对系统的图形化管理。因为功能集成,对服务器管理来说,可以称得上是神器,深受linux开发者的喜爱。(呵呵。。)最后我大概是知道了,公司就是想让我在人..

    2022年10月25日
  • springboot实战第二章

    springboot实战第二章

    2021年5月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号