springboot图片上传怎么操作?SpringBoot有哪些特点?

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工具网。

推荐阅读:

java主函数的快捷键有哪些?java常用快捷键介绍

hibernate框架原理是什么?hibernate核心API有几个?

java主函数如何定义?java主函数怎么应用?