SpringBoot实现文件上传 | 带你读《SpringBoot实战教程》之二十八-阿里云开发者社区

开发者社区> 开发者学习资源库> 正文

SpringBoot实现文件上传 | 带你读《SpringBoot实战教程》之二十八

简介: 本节介绍了在SpringBoot中如何实现文件上传。

上一篇:如何发送基于模板的邮件? | 带你读《SpringBoot实战教程》之二十七
下一篇:SpringBoot实现批量文件上传 | 带你读《SpringBoot实战教程》之二十九

本文来自于千锋教育在阿里云开发者社区学习中心上线课程《SpringBoot实战教程》,主讲人杨红艳,点击查看视频内容

SpringBoot实现文件上传

在工程中添加依赖:

<!-- spring boot web支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

      <!-- thymeleaf模板依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

控制上传文件的大小,在全局配置文件application.properties中添加:

multipart.maxFileSize=500Mb
multipart.maxRequestSize=500Mb

实现上传的页面:
image.png

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"></meta>
<title>文件上传</title>
</head>
<body>
    <h2>文件上传</h2>
    <hr/>
    <form method = "POST" enctype="multipart/form-data" action="/upload">
    <p>
        文件<input type="file" name="file"/>
    </p>
    <p>
        <input type="submit" value="上传"/>
    </p>
    </form>
</body>
</html>

UploadController:

@Controller
public class UploadController {

    @RequestMapping("/index")
    public String toUpload(){
        return "upload";
    }


    @RequestMapping(value="/upload",method=RequestMethod.POST)
    @ResponseBody    
    public String uploadFile(MultipartFile file, HttpServletRequest request) {
        try{
             //创建文件在服务器端的存放路径
            String dir=request.getServletContext().getRealPath("/upload");
            File fileDir = new File(dir);
            if(!fileDir.exists())
                fileDir.mkdirs();
            //生成文件在服务器端存放的名字
            String fileSuffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
            String fileName=UUID.randomUUID().toString()+fileSuffix;
            File files = new File(fileDir+"/"+fileName);
            //上传
            file.transferTO(files);

        }catch(Exception e) {
            e.printStackTrace();
            return "上传失败";
        }

        return "上传成功";
    }
}

在启动类中添加所有需要扫描的包:

@SpringBootApplication(scanBasePackages="com.qianfeng")

执行结果:
image.png
选择文件上传
image.png
image.png

配套视频

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

开发者免费资源中心,技术电子书、会议PPT、论文资料持续供应中

官方博客
官网链接