spring - 在 Spring 中上传后更改视频文件(重新上传文件)
问题描述
这是我将视频文件上传到服务器的代码。上传完成后,用户可以在“审核”页面查看上传的文件。当用户上传另一个视频文件并重定向到“评论”页面时,用户看到的是之前添加的文件,而不是新文件。我该如何解决?
控制器.java
@RequestMapping(value = "/vid-submit")
public String saveVideoData(@RequestParam("answer-file") MultipartFile multipartFile) throws IOException {
User user = getUser();
SurveyRecords surveyRecord = surveyRecordsRepository.getSingleDataByUserId(user.getUserId());
String filename = StringUtils.cleanPath(multipartFile.getOriginalFilename());
String fileExt = "";
int i = -1;
if(( i = filename.indexOf(".")) != -1){
fileExt = filename.substring(i);
}
filename = user.getUserId() + fileExt;
String uploadDir = "src/main/resources/static/content/videos";
FileUploadUtil.saveFile(uploadDir, filename, multipartFile);
if (surveyRecord == null) {
SurveyRecords newSurveyRecord = new SurveyRecords();
newSurveyRecord.setVideo(filename);
newSurveyRecord.setUser(user);
surveyRecordsRepository.save(newSurveyRecord);
} else {
surveyRecord.setVideo(filename);
surveyRecord.setUser(user);
surveyRecordsRepository.save(surveyRecord);
}
return "redirect:/review";
}
文件上传工具.java
public static void saveFile(String uploadDir, String fileName,
MultipartFile multipartFile) throws IOException {
Path uploadPath = Paths.get(uploadDir);
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
try (InputStream inputStream = multipartFile.getInputStream()) {
Path filePath = uploadPath.resolve(fileName);
Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ioe) {
throw new IOException("Could not save video file: " + fileName, ioe);
}
}
解决方案
推荐阅读
- mysql - 当我从数据库中获取数据时,它会在 sql 命令上出错。我该如何修复代码
- c++ - 对 UDP 套接字使用字节进行限制的标头
- javascript - 使用 Netlify URL 部署的 React Redux 应用程序问题
- ios - 嵌套的 CollectionView 单元格未出现
- regex - 正则表达式匹配 - app.yaml 的跳过文件部分 - Angular
- javascript - 在哪里添加 Angular 6 中的页面特定脚本?
- php - mysql:基于一张表对其他连接表值求和
- hyperledger-fabric - 如何在 Hyperledger Fabric 中更改通道策略
- python - asyncio 和 aiohttp“无法连接到主机”
- android - 如何从网络时间协议获取当前时间?