这里测试上传一个jpg
package cn.itsp.demo.controller;
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;
//忘记注册会报No mapping for Post xxx【url】
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String up(MultipartFile photo, HttpServletRequest request) throws IOException {
//获取图片原始名称(即获取文件名)
System.out.println(photo.getOriginalFilename());
//获取文件类型 image/jpeg
System.out.println(photo.getContentType());
//获取请求地址的servlet上下文的真实(动态)路径,它是一个动态变更的路径,用"/upload/"做一个拼接
String path = request.getServletContext().getRealPath("/upload/");
//C:\Users\w2398\AppData\Local\Temp\tomcat-docbase.80.945667315194814397\upload\
System.out.println(path);
saveFile(photo, path);
return "上传成功";
}
private void saveFile(MultipartFile photo, String path) throws IOException {
File dir = new File(path);
if (!dir.exists()) {
//创建目录
dir.mkdir();
}
File file = new File(path + photo.getOriginalFilename());
//通过MultipartFile 类中的方法,将网路中传输的文件存储到file路径中
photo.transferTo(file);
}
}
这里一定要发form-data格式的数据
路径粘过来查一下,上传成功!