SpringBoot2.x文件上传实战

设置上传的文件大小:

@Configuration
public class fileConfigure {

    @Bean
    public MultipartConfigElement multipartConfigElement(){
        MultipartConfigFactory factory=new MultipartConfigFactory();
        //单个文件的大小
        factory.setMaxFileSize("200KB");
        //设置总上传数据的大小
        factory.setMaxRequestSize("1024000KB");
        return factory.createMultipartConfig();
    }

}

Controller:

@RestController
//@PropertySource({"classpath:application.properties"})
public class FileController {

//    @Value("${web.upload-path}")
//    private String filePath;

//    @Autowired
//    private ServiceSetting serviceSetting;

    private String path="C:\\Users\\54701\\Desktop\\images";

    @RequestMapping(value = "uploadfile")
    public JsonData upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest request){

        String name=request.getParameter("name");
        System.out.println("用户名:"+name);

        //获取文件名
        String fileName=file.getOriginalFilename();
        System.out.println("上传的文件名为:"+fileName);

        //获取文件的后缀名
        String suffixName=fileName.substring(fileName.lastIndexOf("."));
        System.out.println("上传的后缀名为:"+suffixName);

        //文件上传后的路径
        fileName= UUID.randomUUID()+suffixName;
        //File dest=new File(serviceSetting.getName()+fileName);
        File dest=new File(path+fileName);

        try {
            file.transferTo(dest);
            return new JsonData(0,fileName,"上传成功");
        }catch (IllegalStateException e){
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }
        return new JsonData(-1,"fail","上传失败");
    }
}

HTML页面:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" http-equiv="content-type" content="text/html">
    <title>图片上传</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/uploadfile">
    文件:<input type="file" name="head_img"/>
    姓名:<input type="text" name="name"/>
    <input type="submit" value="上传"/>
</form>
</body>
</html>

原文地址:https://www.cnblogs.com/Mblood/p/9689862.html

时间: 2024-08-30 17:04:40

SpringBoot2.x文件上传实战的相关文章

spring-boot 参数长度、文件上传大小限制问题

spring boot 设置tomcat post参数限制 1.外置tomcat: 这个简单,直接在server.xml里面修改这句话: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxPostSize="0"/> 没错就是修改这里的maxPostSize的值,

Eclipse搭建springboot项目(三)文件上传

知识点:SpringBoot2.x文件上传:HTML页面文件上传和后端处理 1.springboot文件上传 MultipartFile file,源自SpringMVC 1)静态页面直接访问:localhost:8080/index.html 注意点:如果想要直接访问html页面,则需要把html放在springboot默认加载的文件夹下面 2)MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效) 访问路径 http

Selenium2学习-039-WebUI自动化实战实例-文件上传下载

通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a或其他方式结合实现). 非input标签类因其有各式各样的实现方式,需要考虑具体的场景,因而此文对此类文件上传不做讲解,以input标签实现文件上传的方式进行讲解,请知悉! 解决方案有如下三种: 1.定位元素直接通过sendkeys修改input标签的文件链接: 2.通过第三方控件(AutoIt)编

[实战]MVC5+EF6+MySql企业网盘实战(7)——文件上传

写在前面 周末了,在家继续折腾网盘,今天实现网盘文件的上传,下载及删除. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册 [实战]MVC5+EF6+MySql企业网盘实战(3)——验证码 [实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像 [Bootstrap]modal弹出框 [实战]MVC5+EF6+MySql企业网盘实战(5)

文件上传姿势整理(附实战)

--人的理想志向往往和他的能力成正比. 在这里整理一些自己最近学习的文件上传的知识,方便自己回忆和深刻记忆(不全,只是将自己不知道的原理以及技巧分享出来). 文件上传漏洞的几种情况(在ichunqiu的博客园扒的 - -.): MIME类型绕过漏洞(就是content-type:) 文件内容检测绕过 空字节截断(%00,0x00) 解析导致的文件上传漏洞: IIS6.0/IIS7.0/IIS7.5(后面细说) Apache站上的解析缺陷绕过上传 htaccess文件上传解析漏洞 还有就是各种cm

ASP.NET实战之文件上传

时下比较流行的云盘,比如百度云盘,360云盘,金山快盘等等,相信大家都用过.云盘是互联网存储工具,是互联网云技术的产物,是通过互联网为企业和个人提供数据信息的存储,读取以及下载等服务,其最大的两个特点是安全稳定和海量存储.我的笔记本硬盘只有500G,有一天当我发现我的6个硬盘分区中红了4个,我就开始往我的百度云盘上"搬东西",这个搬东西就是我们今天要谈到的"文件上传". 其实文件上传在互联网应用和网站开发中十分常见,我们在各类社交软件中使用的"照片上传&q

JAVAEE——SSH项目实战03:新增客户、数据字典、文件上传和修改客户

作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7145599.html 一.新增客户 1.数据字典  用于枚举项目中有限个数的字典项 (1)表中数据字典与其他表的关系:     建表语句: CREATE TABLE `base_dict` ( `dict_id` varchar(32) NOT NULL COMMENT '数据字典id(主键)', `dict_type_code` varchar(10) NOT NULL COMMEN

【SSH网上商城项目实战13】Struts2实现文件上传功能

上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细解说.为此,这篇文章详细介绍一下Struts2实现文件上传的功能. 1. 封装文件信息 我们首先得有一个Model来封装文件的信息,这个Model里需要有三个属性:文件.文件类型和文件名.针对我们要传的图片,我们新建一个Model如下: public class FileImage { private File file; private String contentType; private String fi

3. 文件上传靶机实战(附靶机跟writeup)

upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs 运行环境 操作系统:推荐windows(除了Pass-19必须在linux下,其余Pass都可以在windows上运行) php版本:推荐5.2.17(其他版本可能会导致部分Pass无法突破) php组件:php_gd2,php_exif(部分Pass需要开启这两个组件) apache:以moudel方式连接 PS:为了节省时间,可下载Wi