SpringBoot实现文件上传
一、整个项目只要这四个文件即可实现文件上传 ,如下:
二、代码如下:
1、com.ht.controller/ FileUploadController(控制层)
package com.ht.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/*
* SpringBoot文件上传
* */
//@Controller 这次不用这个,用下面的升级版
@RestController //表示该类下的方法的返回值会自动做json格式的转换
public class FileUploadController {
/*
*处理文件上传
*/
@RequestMapping("/fileupload")
public Map<String,Object> fileupload(MultipartFile filename) throws Exception{//这里的filename要和index.html中的file的名称相同
//上传的文件的名称
System.out.println(filename.getOriginalFilename());
//文件上传到达的路径,如下:把一个文件上传到f盘根目录下了
filename.transferTo(new File("f:/"+filename.getOriginalFilename()));//抛出一个异常
Map<String,Object> map=new HashMap<>();
map.put("msg","OK"); //返回的json格式
return map;
}
}
2、com.ht/FileuploadApplication (启动类)
package com.ht;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FileuploadApplication {//先启动这个启动类再去upload.html中实现上传
public static void main(String[] args) {
SpringApplication.run(FileuploadApplication.class, args);
}
}
3、src/main/resources/static/upload.html(页面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="fileupload" method="post" enctype="multipart/form-data">
文件上传:<input type="file" name="filename"/> <br/>
<input type="submit"/>
</form>
</body>
</html>
4、src/main/resources/application.properties(设置最大上传的大小)
spring.http.multipart.maxFileSize=200MB
spring.http.multipart.maxRequestSize=200MB
注:操作:先右键运行FileuploadApplication 启动类启动成功,然后再去upload.html中实现上传