java接收文件流并操作文件流
1.controller层2.service层3.postman测试这里选择你要上传的本机文件就可以了。这种方式其实就是我们先把文件流临时保存在服务器的默认目录里,等到我们用完文件后就可以把它删除了,否则会占用服务器的一些内存。......
·
1.controller层
@PostMapping("/upload")
public Resp upload(@RequestParam MultipartFile multipartFile, HttpServletRequest request) throws IOException {
modelService.upload(multipartFile, request);
return Resp.justSuccess();
}
2.service层
@Transactional(rollbackFor = Exception.class)
public void upload(MultipartFile multipartFile, HttpServletRequest request) throws IOException {
//获取前端上传的文件名称
String originalFileName = multipartFile.getOriginalFilename();
//取文件名下标,给文件重命名的时候使用
String suffix = originalFileName.substring(originalFileName.indexOf("."));
//取一个随机id给文件重命名使用
String uuid = UUID.randomUUID().toString();
//你的接收的文件新的名字
String filename = uuid+suffix;
String uri = request.getSession().getServletContext().getRealPath("/");
System.out.println(uri);
//在项目新建一个 你重新生成名称的文件
File file = new File(uri+ "/" + filename);
//将接收的到的 multipartFile 类型的文件 转为 file
multipartFile.transferTo(file);
//获取接收到的并存在项目本地的文件,这样你就可以拿着这个文件随意处理啦
String filePath = file.getAbsolutePath();
String input = FileUtils.readFileToString(file,"UTF-8");
File f = new File(file.toURI());
if (f.delete()){
log.info("删除成功");
}else {
log.info("删除失败");
}
}
3.postman测试
这里选择你要上传的本机文件就可以了。
这种方式其实就是我们先把文件流临时保存在服务器的默认目录里,等到我们用完文件后就可以把它删除了,否则会占用服务器的一些内存。
更多推荐
已为社区贡献1条内容
所有评论(0)