SpringBoot中怎么实现单文件上传功能

本篇文章给大家分享的是有关SpringBoot中怎么实现单文件上传功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1. 页面testFile.html

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>测试文件上传</title>  <script src="../static/jquery/jquery-2.1.1.min.js" th:src="@{/jquery/jquery-2.1.1.min.js}"></script>    <script type="text/javascript">  $(function () {    $("#upload1").click(function () {      var formData = new FormData();      formData.append("file", document.getElementById("file").files[0]);        $.ajax({        url: "/file/upload1",        type: "POST",        data: formData,                //必须false才会自动加上正确的Content-Type        contentType: false,                //必须false才会避开jquery对 formdata 的默认处理        //XMLHttpRequest会对 formdata 进行正确的处理        processData: false,                success: function (data) {          if (data.status == "true") {            alert("上传成功!");          }          if (data.status == "error") {            alert(data.msg);          }        },        error: function () {          alert("上传失败!");        }      });    });  });  </script></head><body>   <form method="POST" enctype="multipart/form-data" action="/file/upload1">   <fieldset>     <legend>单一文件上传实例:</legend>       文件1:<input type="file" name="file" id="file"/><br/>            <input type="button" id="upload1" value="上传"/><br/>    </fieldset>  </form></body></html>

2. FileController.java

package com.stormkai.controller;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import lombok.extern.slf4j.Slf4j;@Controller@RequestMapping("/file")@Slf4jpublic class FileController {  @GetMapping("/index") public String index() { return "testFile"; }  @PostMapping("/upload1")  @ResponseBody  public Map<String, Object> upload1(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {        log.info("系统路径={}",request.getSession().getServletContext().getRealPath(""));    String path = "F:\\uploadfile\\";    if(!new File(path).exists()){     new File(path).mkdirs(); }    file.transferTo(new File(path + file.getOriginalFilename()));    Map<String, Object> result = new HashMap<>();    result.put("status", "true");    result.put("data", null);    return result;  }}

以上就是SpringBoot中怎么实现单文件上传功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。