java接收檔案流並操作檔案流
阿新 • 來源:網路 • 發佈:2023-01-05
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測試


這裡選擇你要上傳的本機檔案就可以了。
這種方式其實就是我們先把檔案流臨時儲存在伺服器的預設目錄裡,等到我們用完檔案後就可以把它刪除了,否則會佔用伺服器的一些記憶體。
