利用springboot怎么实现一个单文件上传功能

  介绍

本篇文章为大家展示了利用springboot怎么实现一个单文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1,代码编写

(1)首先在静态目录中创建一个上传。html文件,内容如下:

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   ,& lt; meta  charset=癠TF-8"比;   ,& lt; title> Title   & lt;/head>   & lt; body>   & lt; form  action=?upload",方法=皃ost", enctype=岸嗖糠?form-data"比;   ,& lt; input 类型=癴ile", name=皍ploadFile",价值=https://www.yisu.com/zixun/扒胙≡裎募?    package  com.example.demo;   ,   import  org.springframework.ui.Model;   import  org.springframework.web.bind.annotation.GetMapping;   import  org.springframework.web.bind.annotation.PostMapping;   import  org.springframework.web.bind.annotation.RestController;   import  org.springframework.web.multipart.MultipartFile;   ,   import  javax.servlet.http.HttpServletRequest;   import  java.io.File;   import  java.io.IOException;   import  java.text.SimpleDateFormat;   import  java.util.Date;   import  java.util.UUID;   ,   @RestController   public  class  FileUploadController  {   ,   ,SimpleDateFormat  sdf =, new  SimpleDateFormat (“/MM/dd/yyyy“);   ,   ,@PostMapping (“/upload")   ,public  String 上传(MultipartFile 还是,,HttpServletRequest 要求),{//,才能上传的文件将保存在项目运行目录下的,uploadFile 文件夹,   String 才能;realPath =, req.getSession () .getServletContext () .getRealPath(“/还是“);   System.out.println才能(realPath);   ,//才能,并且在,uploadFile 文件夹中通过日期对上传的文件归类保存//才能,比如:/还是2019/06/06/32091e5f - c9e9 - 4506 - 9567 - 43 - e724f1fe37.png   String 才能;format =, sdf.format (new 日期());   File 才能;folder =, new 文件(时间+ realPath 格式);   if 才能;(! folder.isDirectory ()), {   ,,folder.mkdirs ();   ,,}   ,//,才能对上传的文件重命名,避免文件重名   String 才能;oldName =, uploadFile.getOriginalFilename ();   String 才能;newName =, UUID.randomUUID () .toString ()   ,,,+,oldName.substring (oldName.lastIndexOf (“!”), oldName.length ());   try {才能   ,,//,文件保存   ,,uploadFile.transferTo (new 文件(文件夹,,新名称));   ,   ,,//,返回上传文件的访问路径   ,,String  filePath =, req.getScheme (), +,“://,, +, req.getServerName ()   ,,,,+,“:“,+,req.getServerPort(), +,“还是/?+,format  +,新名称;   ,,return  filePath;   ,,},catch  (IOException  e), {   ,,e.printStackTrace ();   ,,}   return “才能上传失败!“;   ,}   }

2,运行测试

(1)我们使用浏览器访问上传。html页面并选择文件上传:

利用springboot怎么实现一个单文件上传功能

(2)上传成功后会返回上传文件的访问路径:

利用springboot怎么实现一个单文件上传功能

附:常用参数配置

(1)如果我们需要对图片上传的细节进行配置,也是可以的。比如我们可以在应用程序。属性文件中添加如下配置:
我对“spring.servlet.multipart.file-size-threshold"这个参数的理解,由于文件上传操作,tomcat会默认将上传的文件保存到系统的临时文件夹,我们的程序再将文件从临时文件夹移动到指定的上传目录,最后再将临时文件夹中的文件删除,那这个参数的含义就是,加入参数值为10 mb,那就是当上传的文件小于10 mb时,上传的文件不经过临时文件夹直接保存到我们的指定目录,当文件大小大于10 mb时,会先将文件写入到磁盘的临时文件夹中,最后再存到我们指定的目录,这样的目的就是不至于因为文件内容过大,内存被挤爆,这是个人对这个参数的理解,和为什么需要搞个临时文件夹,今天太晚了,明天起来再验证这个吧,另外,文章末尾的文章可以参考下再。

利用springboot怎么实现一个单文件上传功能