`

详细全面的 SpringBoot 文件上传

 
阅读更多

这些天忙着刷题,又怕遗忘了spring boot, 所以抽出一点时间折腾折腾,加深点印象。
spring boot 的文件上传与 spring mvc 的文件上传基本一致,只需注意一些配置即可。
环境要求: Spring Boot v1.5.1.RELEASE + jdk1.7 + myeclipse

1).引入thymeleaf,支持页面跳转

<!-- 添加thymeleaf -->
        <dependency>  
         <groupId>org.springframework.boot</groupId>  
         <artifactId>spring-boot-starter-thymeleaf</artifactId>  
        </dependency>
 

2).在 src/main/resources 目录下新建 static 目录和 templates 目录。 static存放静态文件,比如 css、js、image… templates 存放静态页面。先在templates 中新建一个 uploadimg.html

<!DOCTYPE html>
<html>
  <head>
    <title>uploadimg.html</title>

    <meta name="keywords" content="keyword1,keyword2,keyword3"></meta>
    <meta name="description" content="this is my page"></meta>
    <meta name="content-type" content="text/html; charset=UTF-8"></meta>

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>

  <body>
  <form enctype="multipart/form-data" method="post" action="/testuploadimg">
    图片<input type="file" name="file"/>
    <input type="submit" value="上传"/>
    </form>
  </body>
</html>
 

3).在 controller 中写两个方法,一个方法跳转到上传文件的页面,一个方法处理上传文件

//跳转到上传文件的页面
    @RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
    public String goUploadImg() {
        //跳转到 templates 目录下的 uploadimg.html
        return "uploadimg";
    }

    //处理文件上传
    @RequestMapping(value="/testuploadimg", method = RequestMethod.POST)
    public @ResponseBody String uploadImg(@RequestParam("file") MultipartFile file,
            HttpServletRequest request) {
        String contentType = file.getContentType();
        String fileName = file.getOriginalFilename();
        /*System.out.println("fileName-->" + fileName);
        System.out.println("getContentType-->" + contentType);*/
        String filePath = request.getSession().getServletContext().getRealPath("imgupload/");
        try {
            FileUtil.uploadFile(file.getBytes(), filePath, fileName);
        } catch (Exception e) {
            // TODO: handle exception
        }
        //返回json
        return "uploadimg success";
    }
 

4).在上面中,我将文件上传的实现写在工具类 FileUtil 的 uploadFile 方法中


public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception { 
        File targetFile = new File(filePath);  
        if(!targetFile.exists()){    
            targetFile.mkdirs();    
        }       
        FileOutputStream out = new FileOutputStream(filePath+fileName);
        out.write(file);
        out.flush();
        out.close();
    }

5).在浏览器输入 :http://localhost:8080/gouploadimg 测试

这里写图片描述

上传文件后:

这里写图片描述

在应用的 src/main/webapp/imgupload 目录下

这里写图片描述

6).如果上传的文件大于 1M 时,上传会报错文件太大的错误,在 application.properties 中设置上传文件的参数即可

spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=100Mb

 

分享到:
评论

相关推荐

    SpringBoot文件上传

    5. **日志记录**:记录文件上传的详细信息,便于追踪和排查问题。 6. **安全性**:防止文件注入攻击,对上传文件进行安全检查,例如限制文件类型和大小,以及检查文件内容。 在提供的压缩包文件列表中,我们看到的...

    SpringBoot实现文件上传系统.zip

    在本项目中,"SpringBoot实现文件上传系统.zip" 是一个使用Java的Spring Boot框架构建的文件上传系统。Spring Boot以其简洁的配置和快速开发能力,成为开发微服务和Web应用的首选工具。以下是该系统可能涉及的关键...

    全面解析SpringBoot文件上传功能

    本文将对 Spring Boot 文件上传功能进行详细的解析,并提供具体的实现步骤。 环境要求 * Spring Boot v1.5.1.RELEASE * JDK 1.7 * MyEclipse 引入 Thymeleaf Thymeleaf 是一个流行的模板引擎,Spring Boot 提供...

    基于 SpringBoot 开发的超简洁音乐播放器

    SpringBoot 提供了文件上传的支持,可以通过 MultipartFile 类型接收上传文件,并将其存储到服务器。同时,可以设计 API 允许用户下载已上传的音乐文件。 【Woodwhales-music-master 项目结构】 "woodwhales-music...

    SpringBoot和Vue构建的文件分享系统

    关于文件的上传与下载功能,系统可能利用Spring Boot提供的MultipartFile接口来处理文件上传,将文件存储在服务器的文件系统或云存储服务如Amazon S3、阿里云OSS中。下载功能则可能通过HTTP响应头设置,如Content-...

    基于Springboot2.x的文件上传下载经典案例,文件上传下载+大文件断点续传、秒传+漂亮的前端页面

    在Springboot中,我们可以使用MultipartFile接口处理文件上传。用户通过前端提交表单,后端接收到请求后,将文件存储到服务器的指定位置。需要注意文件的大小限制、文件类型的检查以及错误处理。 3. **文件下载**...

    springboot+webuploader 实现大文件切片上传

    在现代Web应用中,大文件上传是一个常见的需求,尤其是在数据传输、媒体分享或者云存储服务等领域。本项目结合SpringBoot框架和WebUploader组件,提供了一种高效、稳定且兼容多种浏览器的大文件切片上传解决方案。 ...

    基于SpringBoot和Vue构建的文件分享系统,包括文件的上传与下载,文件的权限管理,远程文件管理等.zip

    在文件上传与下载方面,SpringBoot后端通常会使用MultipartFile接口来处理文件上传请求,将接收到的文件存储在服务器的指定位置或者云存储服务中。下载时,后端通过文件路径或存储ID来获取文件,并将其流式传输回...

    【java毕设图书管理系统】SpringBoot实战项目,涵盖文件上传,图表统计,发送邮件

    这个系统不仅提供了基本的图书管理功能,还涵盖了文件上传、图表统计以及邮件发送等进阶特性,是学习和理解SpringBoot在企业级应用中的优秀实践。 首先,让我们深入了解SpringBoot的核心特性。SpringBoot是由...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    springboot整合XSS

    但为了更全面的保护,我们需要自定义配置: ```java @Override protected void configure(HttpSecurity http) throws Exception { http .headers() .contentSecurityPolicy("default-src 'self'; script-src '...

    基于vue+springboot实现的文件转换器.zip

    在这个项目中,Spring Boot可能被用来处理文件上传、调用转换服务、存储和检索转换后的文件,以及提供RESTful API供前端调用。 在文件转换方面,项目可能涉及到不同的文件格式转换库,例如Apache POI处理Office文档...

    基于Springboot+Mybatis+Mysql的网盘文件管理系统

    2. **文件上传**:提供API接口,用户可以将本地文件上传到服务器,同时需要处理文件的存储、重命名、大小限制等问题。 3. **文件下载**:用户根据文件ID或URL可以下载已上传的文件,系统需确保下载过程的安全和效率...

    springboot框架+thymeleaf模板引擎+layui前端框架+数据库

    而"springboot-upload"可能是一个与SpringBoot上传功能相关的模块或示例代码,展示了如何在SpringBoot应用中处理文件上传。 综上所述,这个开源项目利用SpringBoot的便利性,结合Thymeleaf的模板渲染,Layui的前端...

    springboot1.4.2+angularJs示例

    这个项目旨在展示如何使用这两个框架来创建一个功能完善的系统,该系统具备数据库操作、文件上传下载以及可部署为WAR文件在独立的Tomcat服务器上运行的能力。 首先,Spring Boot是Spring框架的一个扩展,它简化了...

    Springboot入门到精通(超详细文档)

    Spring MVC框架作为基础,Spring Boot提供了处理表单、文件上传、异常处理等功能。 Spring Boot还支持Actuator,这是一个强大的监控和管理工具。它提供了健康检查、环境信息、审计、指标等多种端点,帮助你了解应用...

    JAVA超级简单的excel导入导出,springboot使用easypoi

    本文将详细讲解如何在SpringBoot项目中集成easypoi,实现Excel的导入导出功能。 首先,让我们了解easypoi的基本概念。easypoi是基于Apache POI的一个Java库,它简化了POI的API,使得开发者能够更加便捷地操作Excel...

    EFO是一个基于SpringBoot和Vue构建的文件分享系统,

    通过对这些文件的深入研究,学习者不仅可以了解SpringBoot和Vue的集成应用,还能掌握文件管理系统的设计原理,包括文件上传、下载、权限控制、用户认证等多个方面。同时,这也是对软件工程实践的一次全面体验,包括...

    SpringBoot实现了随机匹配聊天、离线消息缓存、消息本地化存储、头像上传、小游戏推荐、世界聊天以及好友关系

    【SpringBoot实现随机匹配聊天】 ...总结来说,这个项目是一个全面的社交聊天应用,涵盖了用户认证、实时通信、数据存储、文件上传和社交功能等多个方面,是学习和理解SpringBoot在实际项目中应用的优秀实例。

Global site tag (gtag.js) - Google Analytics