gpt4 book ai didi

java - 如何在spring controller图片/视频中检测上传的文件类型

转载 作者:行者123 更新时间:2023-11-30 10:09:37 35 4
gpt4 key购买 nike

我有两个实体照片和视频,基本上我需要一个可以上传图片和视频的 Controller 。一个 eg 场景是我执行 Controller ,它打开我的文件,如果我选择一个视频,它将作为一个带有视频实体的 mp4 处理,如果我选择一张图片,它使用照片实体并将其作为图像处理。两个实体都具有 Multipartfile 属性来表示图像和视频。

基本上我已经看到这个链接有上传视频的答案 How to Implement HTTP byte-range requests in Spring MVC

另一个例子是在社交应用中,我们使用一次点击来上传照片或视频

这是我目前拥有的

@RequestMapping(value = "/Upload", method = RequestMethod.POST)
public String FileUpload(HttpServletRequest request,
@RequestParam("fileUpload") MultipartFile[] fileUpload) throws Exception {


}

我想使用上面链接中的 MultipartFileSender,但不确定如何用两种不同的实体处理它,一个用于视频和照片

目前我有这个

  @RequestMapping(value = "/upload", method = RequestMethod.POST)
public String Post(@Nullable Photo photo, @Nullable Video video,
HttpServletRequest request, HttpServletResponse response) {

String ext1 = FilenameUtils.getExtension("/path/to/file/foo.txt");
if(ext1.matches("png")) {

MultipartFile bookImage = photo.getImage();
try {
byte[] bytes = bookImage.getBytes();
String name = photo.getId() + ".png";
BufferedOutputStream stream =
new BufferedOutputStream(
new FileOutputStream(new File("src/main/resources/static/image/book/" + name)));
stream.write(bytes);
stream.close();

photoRepository.save(photo);
} catch (Exception e) {
e.printStackTrace();
}

} else {
/*

*/
MultipartFile videoFile = video.getVideo();
/**
* not sure how to continue about this
the class bellow MultipartFileSender can be found here https://stackoverflow.com/questions/28427339/how-to-implement-http-byte-range-requests-in-spring-mvc i am using that because i need a byte range request for the video upload
*/
MultipartFileSender.fromFile(File( ))
.with(request)
.with(response)
.serveResource();
}
return null;
}

最佳答案

有多种方法可以做到这一点。我做过类似的事情,但我使用了一些技巧来获得与您类似的结果。

1- 使用所有可能的视频和图像扩展创建 2 个单独的数组列表

1 - 创建一个获取媒体文件扩展名的方法

2 - 创建一个方法,将您获得的文件扩展名与包含所有可能的视频和图像扩展名的数组列表进行比较。

这样您就可以区分视频和图像,并以不同的方式处理它们。希望这有帮助!

关于java - 如何在spring controller图片/视频中检测上传的文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53163247/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com