Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器,它的主要目的是用来简化新Spring应用的初始搭建以及开发过程。那springboot图片上传怎么操作?下面来我们就来给大家讲解一下。
1、单张图片上传
1.1、前端用表单提交
前端代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post" action="/uploads" enctype="multipart/form-data"> <input type="file" name="files" multiple> <input type="submit" value="上传"> </form> </body> </html>
后端代码:
SimpleDateFormat formatter = new SimpleDateFormat("/yyyy/MM/dd/"); @RequestMapping("/upload") public String fileUpload(MultipartFile file, HttpServletRequest request) { String time = formatter.format(new Date()); //图片上传服务器后所在的文件夹 String realPath = request.getServletContext() .getRealPath("/img") + time; File folder = new File(realPath); if (!folder.exists()) folder.mkdirs(); //通常需要修改图片的名字(防止重复) String oldName = file.getOriginalFilename(); String newName = UUID.randomUUID() + oldName.substring(oldName.lastIndexOf(".")); try { //将文件放到目标文件夹 file.transferTo(new File(folder, newName)); //通常还需要返回图片的URL,为了通用性,需要动态获取协议,不要固定写死 String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/img" + time + newName; return returnUrl; } catch (IOException e) { e.printStackTrace(); } return null; }
1.2、前端用ajax提交
前端代码与上面的略有不同,后台代码是一样的。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="file" id="file"> <input type="submit" value="上传" onclick="uploadFile()"> <h1 id="result"></h1> </body> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script> function uploadFile() { var file = $("#file")[0].files[0]; var formData = new FormData(); formData.append("file", file); $.ajax({ type:"post", url:"/upload", processData:false, contentType:false, data:formData, success:function (msg) { $("#result").html(msg); } }) } </script> </html>
2、多个图片上传
前端代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post" action="/uploads" enctype="multipart/form-data"> <input type="file" name="files" multiple> <input type="submit" value="上传"> </form> </body> </html>
后台代码:
@RequestMapping("/uploads") public String fileUploads(MultipartFile[] files, HttpServletRequest request) { String time = formatter.format(new Date()); //图片上传服务器后所在的文件夹 String realPath = request.getServletContext() .getRealPath("/img") + time; File folder = new File(realPath); if (!folder.exists()) folder.mkdirs(); for (MultipartFile file: files) { //通常需要修改图片的名字(防止重复) String oldName = file.getOriginalFilename(); String newName = UUID.randomUUID() + oldName.substring(oldName.lastIndexOf(".")); try { //将文件放到目标文件夹 file.transferTo(new File(folder, newName)); //通常还需要返回图片的URL,为了通用性,需要动态获取协议,不要固定写死 String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/img" + time + newName; System.out.println(returnUrl); } catch (IOException e) { e.printStackTrace(); } } return null; }
SpringBoot有哪些特点?
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
SpringBoot框架使开发人员不再需要定义样板化的配置,从而简化了开发过程,因此在java开发中承担着主要角色。最后大家如果想要了解更多其他工具教程知识,敬请关注奇Q工具网。
推荐阅读: