java 获取 MultipartFile
时间: 2023-10-13 15:03:01 浏览: 119
MultipartFile 视频获取时长(时分秒) VideoUtil.java
在Java中获取MultipartFile的方法有多种。其中一种方式是将MultipartFile转换为File再获取。可以通过以下代码获取MultipartFile的宽高:
```java
MultipartFile multipartFile = uploadReq.getFile(); // 获取请求传过来的MultipartFile
String fileName = multipartFile.getOriginalFilename();
String prefix = fileName.substring(fileName.lastIndexOf("."));
try {
File file = File.createTempFile(prefix, String.valueOf(System.currentTimeMillis())); // 创建临时文件
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file);
BufferedImage bufferedImage = ImageIO.read(file); // 通过临时文件获取图片流
if (bufferedImage == null) {
// 证明上传的文件不是图片,获取图片流失败,不进行下面的操作
attachmentInfo.setWidth(0);
attachmentInfo.setHeight(0);
return;
}
attachmentInfo.setWidth(bufferedImage.getWidth());
attachmentInfo.setHeight(bufferedImage.getHeight());
// 省略逻辑判断
} catch (Exception e) {
// 省略异常操作
}
```
另一种方式是通过MultipartFile的InputStream来获取宽高,代码如下:
```java
private void imageProperty(MultipartFile multipartFile, RcAttachmentInfo attachmentInfo) {
try {
BufferedImage bufferedImage = ImageIO.read(multipartFile.getInputStream()); // 通过MultipartFile得到InputStream,从而得到BufferedImage
if (null == bufferedImage) {
// 证明上传的文件不是图片,获取图片流失败,不进行下面的操作
attachmentInfo.setWidth(0);
attachmentInfo.setHeight(0);
return;
}
attachmentInfo.setWidth(bufferedImage.getWidth());
attachmentInfo.setHeight(bufferedImage.getHeight());
} catch (Exception e) {
log.warn("上传图片获取流异常", e.getMessage());
e.printStackTrace();
}
}
```
需要注意的是,对于MultipartFile获取到的InputStream,一旦被消费,就无法再次使用。但是在上述代码中,MultipartFile获取到流并获取宽高后,仍然可以被正常存储。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Java针对MultipartFile上传图片获取宽、高](https://blog.csdn.net/liaonanfeng88/article/details/114288876)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文