Java高频面试专题合集解析:
当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!
更多Java架构进阶资料展示
完整代码给大家贴出来
/\*\*
\* Created by qcl on 2019-06-11
\* desc: 文件上传
\*/
@RestController
public class UploadController {
//单个文件的上传
@PostMapping("/upload")
public String upload(MultipartFile uploadFile, HttpServletRequest request) {
/\*
定义文件的存储路径,如下,是在linux和mac上定义的文件路径
/private/var/folders/8x/4zvnbqmj1w33cqmzrpygzbth0000gn/T/tomcat-docbase.5206733816001100271.8080/uploadFile
\*/
String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");
File dir = new File(realPath);
if (!dir.isDirectory()) {//文件目录不存在,就创建一个
dir.mkdirs();
}
try {
String filename = uploadFile.getOriginalFilename();
//服务端保存的文件对象
File fileServer = new File(dir, filename);
System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());
//2,实现上传
uploadFile.transferTo(fileServer);
String filePath = request.getScheme() + "://" +
request.getServerName() + ":"
+ request.getServerPort()
+ "/uploadFile/" + filename;
//3,返回可供访问的网络路径
return filePath;
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败";
}
//多个文件的上传
@PostMapping("/uploads")
public String uploads(MultipartFile\[\] uploadFiles, HttpServletRequest request) {
//1,对文件数组做判空操作
if (uploadFiles == null || uploadFiles.length < 1) {
return "文件不能为空";
}
//2,定义文件的存储路径,
String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");
File dir = new File(realPath);
if (!dir.isDirectory()) {//文件目录不存在,就创建一个
dir.mkdirs();
}
try {
String filePathS = "";
//3,遍历文件数组,一个个上传
for (int i = 0; i < uploadFiles.length; i++) {
MultipartFile uploadFile = uploadFiles\[i\];
String filename = uploadFile.getOriginalFilename();
//服务端保存的文件对象
File fileServer = new File(dir, filename);
System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());
//2,实现上传
uploadFile.transferTo(fileServer);
String filePath = request.getScheme() + "://" +
request.getServerName() + ":"
+ request.getServerPort()
+ "/uploadFile/" + filename;
filePathS = filePathS + "\\n" + filePath;
}
//4,返回可供访问的网络路径
return filePathS;
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败";
}
}
到这里我们多文件上传的代码就全部实现了。
三,启动项目(三种方式~推荐第一种)
==================
1,点击绿色箭头(最简便,提倡)
2,点击main方法前的绿色箭头
3,命令行输入 mvn spring-boot:run
四,验证
====
1,输入下图的链接,进入文件选择页
2,选择多个文件,我们这里选择3个图片,一个视频
3,点击上传,然后上传成功如下图
最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分
…(img-z5WdFEsL-1715293456579)]