springboot文件上传 MultipartFile file,源自SpringMVC

MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效)

  1. @Controller
  2. public class FileController {
  3.  
  4. private static final String filePath = "D:/.../src/main/resources/static/images/";
  5.  
  6. @RequestMapping(value = "upload")
  7. @ResponseBody
  8. public JsonData upload(@RequestParam("head_img") MultipartFile file,HttpServletRequest request) {
  9.  
  10. //file.isEmpty(); 判断图片是否为空
  11. //file.getSize(); 图片大小进行判断
  12. String name = request.getParameter("name");
  13. System.out.println("用户名:"+name);
  14.  
  15. // 获取文件名
  16. String fileName = file.getOriginalFilename();
  17. System.out.println("上传的文件名为:" + fileName);
  18.  
  19. // 获取文件的后缀名,比如图片的jpeg,png
  20. String suffixName = fileName.substring(fileName.lastIndexOf("."));
  21. System.out.println("上传的后缀名为:" + suffixName);
  22.  
  23. // 文件上传后的路径
  24. fileName = UUID.randomUUID() + suffixName;
  25. System.out.println("转换后的名称:"+fileName);
  26.  
  27. File dest = new File(filePath + fileName);
  28.  
  29. try {
  30. file.transferTo(dest);
  31.  
  32. return new JsonData(0, fileName);
  33. } catch (IllegalStateException e) {
  34. e.printStackTrace();
  35. } catch (IOException e) {
  36. e.printStackTrace();
  37. }
  38. return new JsonData(-1, "fail to save ", null);
  39. }
  40.  
  41. }

前端简易代码

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>uploadimg.html</title>
  5. <meta name="keywords" content="keyword1,keyword2,keyword3"></meta>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <script src="/js/test.js" type="text/javascript"></script>
  8. </head>
  9.  
  10. <body>
  11. <form enctype="multipart/form-data" method="post" action="/upload">
  12. 文件:<input type="file" name="head_img"/>
  13. 姓名:<input type="text" name="name"/>
  14. <input type="submit" value="上传"/>
  15. </form>
  16.  
  17. </body>
  18. </html>

文件大小配置,启动类里面配置

  1. @Bean
  2. public MultipartConfigElement multipartConfigElement() {
  3. MultipartConfigFactory factory = new MultipartConfigFactory();
  4. //单个文件最大
  5. factory.setMaxFileSize("10240KB"); //KB, MB
  6. //设置总上传的数据大小
  7. factory.setMaxRequestSize("1024000KB");
  8. return factory.createMultipartConfig();
  9.  
  10. }

在application.properties中添加上传路径,可用于在文件上传后的直接访问

  1. web.upload-path=D:/.../src/main/resources/static/images/
  2. spring.resources.static-locations=...:${web.upload-path}

SpringBoot(3) 文件上传和访问的更多相关文章

  1. SpringBoot 整合文件上传 elment Ui 上传组件

    SpringBoot 整合文件上传 elment Ui 上传组件 本文章记录 自己学习使用 侵权必删! 前端代码 博主最近在学 elment Ui 所以 前端使用 elmentUi 的 upload ...

  2. ie下文件上传无权访问的问题

    最近项目遇到个问题,ie下文件上传无权访问,在网上找了很久才找到答案,原来是因为ie下不能用js触发input=file的点击事件,必须手动点击才可以.

  3. SpringBoot图文教程4—SpringBoot 实现文件上传下载

    有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...

  4. SpringBoot实现文件上传

    前言参考:快速开发第一个SpringBoot应用 这篇文章会讲解如何使用SpringBoot完成一个文件上传的过程,并且附带一些SpringBoot开发中需要注意的地方 首先我们写一个文件上传的htm ...

  5. springboot+web文件上传和下载

    一.首先安装mysql数据库,开启web服务器. 二.pom.xml文件依赖包配置如下: <?xml version="1.0" encoding="UTF-8&q ...

  6. SpringBoot的文件上传

    先在src/main/resources下新建一个static目录用以存放html页面,简单的html页面如下 <!DOCTYPE html> <html> <head& ...

  7. springBoot的文件上传功能

    知识点: 后台:将上传的图片写入指定服务器路径,保存起来,返回上传后的图片路径(在springBoot中,参考博客:http://blog.csdn.net/change_on/article/det ...

  8. SpringBoot下文件上传与下载的实现

    原文:http://blog.csdn.net/colton_null/article/details/76696674 SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传 ...

  9. Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题

    一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...

随机推荐

  1. activeMQ和spring的整合

    http://www.cnblogs.com/shuai-server/p/8966299.html  这篇博客中介绍了activemq传递消息的两种方式,今天分享的是activemq框架和sprin ...

  2. GUI学习之〇——PyQt5安装

    GUI(Graphical User Interface)是程序和软件使用者的接口,好的GUI是一个良好的软件的前提,在这里演示一下用PyQt5做一个GUI的方法 软件需求:python3.6 用的是 ...

  3. AJAX html 传输json字符串&&巧妙运用eval()来解析返回的JSON字符串

    1.AJAX html 传输json字符串: js方法如下: function saveRetYwlsh(){ var xmbh = document.getElementById("xmb ...

  4. java28

    1.使用多态的优点 把要创建的多个子类缩减为一个父类接着传入参数,用参数调用子类的方法, 输出时直接调用父类的方法,这时传参传创建的对象 2.多态方法的调用 调用的方法前有static时,会默认调用父 ...

  5. Alpha 冲刺 (7/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 学习MSI.CUDA 试运行软件并调试 ...

  6. Mysql中比较常用的两种存储引擎和事务

    存储引擎:引擎(类似汽车上的发动机)决定了数据库的快慢,MySql中有20多个引擎,不同的存储引擎提供不同的存储机制.索引技巧.锁定水平.MYISAM存储引擎,INNODB存储引擎最出名.数据库的核心 ...

  7. 【repost】JavaScript 运行机制详解:再谈Event Loop

    一年前,我写了一篇<什么是 Event Loop?>,谈了我对Event Loop的理解. 上个月,我偶然看到了Philip Roberts的演讲<Help, I'm stuck i ...

  8. PgAgent安装、配置、运行

    一 安装cmakewget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gztar -zxvf cmake-2.8.5.tar.gzcd /root ...

  9. rabbitMq 初步

    RabbitMQ的工作原理 它的基本结构 组成部分说明如下: Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue. Exchange:消息队列交换机,按一定的规则将消息路 ...

  10. Vue自定义指令,ref ,sync,slot

    一.自定义指令 vue中可以自己设置指令,通过directive来实现,有2种创建方式,一种是局部创建,一种是全局创建. 第一种:局部创建 如果想注册局部指令,组件中也接受一个 directives  ...