企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
在 SpringBoot 中实现文件上传步骤如下: **1. 前端** ```html <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> $("#files").change(function () { //创建表单对象 const formData = new FormData() for (let i = 0; i < this.files.length; i++) { formData.append("file", this.files[i]) } formData.append("detail", "文件的一些信息") $.ajax({ url: "/upload/web2/file", type: "post", //必须是post,不能是get async: true, //true为异步,false为同步---同步和异步都可以 data: formData, processData: false, //告诉jQuery不要去处理发送的数据 contentType: false, //告诉jQuery不要去设置Content-Type请求头 beforeSend: function () { //在提交前执行的代码 }, success: function (res) { //提交后并执行成功的执行的代码 console.log(res) }, error: function () { //后端发生异常后执行的代码 } }) }) </script> ``` **2. `resources/application.yml`** ```yml spring: servlet: multipart: max-file-size: 51200MB #上传单个文件的大小上限--50GB max-request-size: 2560000MB #总共上传文件的大小上限--2500GB enabled: true #是否支持一次性上传多个文件,默认为true,支持 ``` **3. 后端** ```java @Controller @RequestMapping("/upload") public class UploadController { /** * 方式一:通过注解@RequestParam接收 */ @ResponseBody @PostMapping("/web/file") public String upload(@RequestParam("file") MultipartFile[] multipartFiles, @RequestParam("detail") String detail) throws IOException { System.out.println("detail:" + detail); //detail:文件的一些信息 for (MultipartFile file : multipartFiles) { System.out.println("文件名:" + file.getOriginalFilename()); System.out.println("文件大小:" + file.getSize()); //将文件存储到服务器的磁盘中 file.transferTo(new File("e:/upload/springboot/" + file.getOriginalFilename())); } //文件名:001.xlsx //文件大小:3414 //文件名:002.xlsx //文件大小:3483 return "上传成功"; } /** * 方式二:通过注解@RequestPart接收 */ @ResponseBody @PostMapping("/web2/file") public String upload2(@RequestPart("file") MultipartFile[] multipartFiles, @RequestParam("detail") String detail) throws IOException { System.out.println("detail:" + detail); //detail:文件的一些信息 for (MultipartFile file : multipartFiles) { System.out.println("文件名:" + file.getOriginalFilename()); System.out.println("文件大小:" + file.getSize()); //将文件存储到服务器的磁盘中 file.transferTo(new File("e:/upload/springboot/" + file.getOriginalFilename())); } //文件名:001.xlsx //文件大小:3414 //文件名:002.xlsx //文件大小:3483 return "上传成功"; } } ```