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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 测试报告范文_系统测试报告

    测试报告范文_系统测试报告前言受益于pytest的集成,HttpRunnerv3.x可以使用pytest所有插件,包括pytest-html和allure-pytest,也可以实现这2种方式的报告内置html报告pyt

    2022年7月28日
    5
  • layout_gravity和gravity的用法

    layout_gravity和gravity的用法也谈layout_gravity和gravity的用法相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过。简单使用一下搜索工具,我们就不难找到下面这样的答案:layout_gravity表示组件自身在父组件中的位置gravity            表示组件的子组件在组件中的位置看似很简单嘛~)貌似大伙瞅一眼就明白了。

    2022年7月15日
    16
  • Some STR Fun

    Some STR Fun

    2021年7月31日
    59
  • vcl组件_TextBox控件

    vcl组件_TextBox控件Label(标签)是比较常见的控件。其常见的属性,我不再多说。在此只说明一些比较好用的属性。       FocusControl是一个不错的属性,如果和label的Caption配合使用,会有不错的效果。       Caption属性值段中输入含有“&”的字串,当用户使用“Alt+关键字母”时,将自动选中它所指向的对象。前提是在FocusControl设置关联的控件

    2022年9月24日
    3
  • ASP.NET和MSSQL高性能分页

    首先是存储过程,只取出我需要的那段数据,如果页数超过数据总数,自动返回最后一页的纪录:setANSI_NULLSONsetQUOTED_IDENTIFIERONGO–===========

    2021年12月20日
    42
  • Java之Java关键字及其作用

    Java之Java关键字及其作用

    2021年7月21日
    53

发表回复

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

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