springboot|springboot 配置文件上传 MVC 和 ajax 版

本贴最后更新于 1807 天前,其中的信息可能已经物是人非

javaDEMO

Java 基础 Demo 站: https://www.javastudy.cloud
Java 中高级开发博客: https://www.lixiang.red
Java 学习公众号: java 技术大本营
java_subscribe

springboot 使用 MVC 上传文件

引入 web 依赖

这里引入thymeleaf依赖为了后面页面ajax上传文件做准备
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'

编写对应的 controller

关键是参数, MutipartFile, 用这个参数来接收文件

/**
 * @Author https://www.javastudy.cloud
 * @CreateTime 2019/11/15
 **/
@RestController
public class TestController {

    @RequestMapping("test/testUpload")
    public String testUpload(MultipartFile testFile){
        try {
            //输出原文件名
            String fileName = testFile.getOriginalFilename();
            System.out.println("fileName is "+fileName);
            //直接显示文件内容
            byte[] bytes = testFile.getBytes();
            System.out.println(new String(bytes));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "OK";
    }
}

用 postMan 测试一个 txt 文件结果如下
image.png
通过上图, 我们可以看到控制台有相应的输出,同时要注意, postMan 上的 body 类型,要选 form-data!! 要选 form-data!!!

springboot 使用 ajax 上传文件

在上面的 controller 的基础之上, 我们使用 ajax 请求来上传文件,如何发 ajax 请求可参考文章: https://www.javastudy.cloud/articles/2019/11/11/1573426366125.html

页面代码如下所示,需要注意, contentType 要设置为 false , processData 也要设置为 false

<input id="file_input" type="file" >
<input id="upload_input" type="button" value="click to upload file">
<script>
    $("#upload_input").on('click',function (e) {
        var formD = new FormData();
        formD.append("testFile",$("#file_input")[0].files[0]);
        $.ajax({
            url:'/test/testUpload',
            type:'post',
            contentType:false,
            processData: false,
            data:formD,
            success:function (data) {
                console.log(data)
            }
        })
    })
</script>

结果输出如下:
image.png

DEMO 总评

文件上传是 web 开发中经常会用到的一个功能,通常在收到文件后,会转存到阿里 OSS 或者本地磁盘中,如果是图片的话,还会涉及到压缩和剪裁,在上传文件时,主要是一些参数的设计,加油吧,少年!

DEMO 下载

springbootuploadfile.zip

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 3 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...