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


相关推荐

  • python hashlib_python之hashlib模块

    python hashlib_python之hashlib模块hashlib模块是python内置的摘要算法。hashlib有两种调用方式:第一种是hashlib.new方法new(name,data=b‘‘,**kwargs)-returnsanewhashobjectimplementingthegivenhashfunction;initializingthehashusingthegivenbinarydat…

    2025年6月20日
    4
  • 七、分发脚本xsync报错

    七、分发脚本xsync报错一、报错问题Badownerorpermissionson/home/pcz/.ssh/configBadownerorpermissionson/home/pcz/.ssh/configrsync:connectionunexpectedlyclosed(0bytesreceivedsofar)[sender]rsyncerror:unexplainederror(code255)atio.c(226)[sender=3.1.2]Badow

    2022年5月5日
    48
  • goland 2021 激活码【在线破解激活】

    goland 2021 激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    42
  • lseek函数的用法

    lseek函数的用法所有打开的文件都有一个当前文件偏移量(currentfileoffset),以下简称为cfo。cfo通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于cfo,并且使cfo增大,增量为读写的字节数。文件被打开时,cfo会被初始化为0,除非使用了O_APPEND 。   使用lseek函数可以改变文件的cfo。       #in…

    2022年6月17日
    50
  • hdu 2074 堆放篮 好开心图纸标题

    hdu 2074 堆放篮 好开心图纸标题

    2021年12月31日
    46
  • noip2014普及组复赛试题_大一高数期末考试试题

    noip2014普及组复赛试题_大一高数期末考试试题T1考察计算机基础知识,所谓集成电路是将大量的晶体管和电子线路组合在一块硅片上,故又称为芯片。故选AAA。T2HTMLHTMLHTML超文本标记语言阅读方式是浏览器,浏览器主要用于显示网页服务器。T3英特尔公司是全球最大的个人计算机零件和CPU制造商。T4TCP/IP模型AAA项最符合该图形式。T5快速排序的期望复杂度是O(nlogn)O(nlogn)O(nlogn)的,最坏情况(已经排好序的序列)是O(n2)O(n^2)O(n2)的。T6第一代:电子管计算机第二代:晶体管计

    2022年8月22日
    6

发表回复

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

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