我是一只小菜鸡
Controller层
@RestController
@Slf4j
public class Controller {
@PostMapping("/partner/upload")
public AjaxJson upload(@RequestParam("files") MultipartFile files, HttpServletRequest request) throws Exception {
String fileName = null;
//原文件名
String originaileName = files.getOriginalFilename();
System.out.println(originaileName);
//文件格式
String suffix = originaileName.substring(originaileName.lastIndexOf("."));
//文件名改为当前时间戳
long time = System.currentTimeMillis();
fileName = time + "" + suffix;
//文件储存路径
String filePath = "jeeplus-web/src/main/resources/static";
//文件全路径
File targetFile = new File(filePath, fileName);
try {
//获取输入流
InputStream is = files.getInputStream();
//获取输出流
OutputStream os = new FileOutputStream(new File(String.valueOf(targetFile)));
//开始复制
int i = 0;
byte[] bytes = new byte[1024];
while ((i = is.read(bytes)) != -1) {
os.write(bytes, 0, i);
}
os.close();
is.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
//request.getScheme()返回当前页面使用的协议,http 或是 https;
// request.getHeader(host)获取请求服务器的主机
return AjaxJson.success("上传成功").put("data", request.getScheme() + "://" + request.getHeader("Host") + "/static/" + fileName);
}
}
在resources里新建一个static 右键->复制储存库根路径->得到文件储存路径。 这样上传的东西就可以在static里看到。
在WebConfig里配置的虚拟路径。