JAVA 获取 MultipartFile 创建日期
时间: 2023-11-07 12:55:18 浏览: 38
JAVA 获取 MultipartFile 创建日期的方法是通过获取 MultipartFile 对象的 InputStream,然后通过使用 Apache POI 库的 XSSFWorkbook 类来解析 Excel 文件。具体的代码如下:
```java
public Result importUser(@RequestParam(name="file") MultipartFile file) throws Exception {
// 1. 根据Excel文件创建工作簿
Workbook wb = new XSSFWorkbook(file.getInputStream());
// 2. 获取工作表
Sheet sheet = wb.getSheetAt(0);
// 3. 获取第一个单元格的创建日期
Row row = sheet.getRow(0);
Cell cell = row.getCell(0);
Date createDate = cell.getCellStyle().getDataFormat();
// 4. 返回创建日期
return createDate;
}
```
相关问题
MultipartFile 获取创建日期
MultipartFile并没有直接提供获取创建日期的方法。但是你可以通过获取MultipartFile的输入流,然后通过输入流获取文件的元数据来获取创建日期。下面是获取MultipartFile创建日期的步骤:
1. 通过MultipartFile的getInputStream()方法获取文件的输入流。
2. 使用输入流获取文件的元数据。具体的步骤可以参考以下代码:
```java
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
// 获取MultipartFile的输入流
InputStream inputStream = multipartFile.getInputStream();
// 将输入流转换为Path对象
Path tempFile = Files.createTempFile("temp", ".tmp");
Files.copy(inputStream, tempFile, StandardCopyOption.REPLACE_EXISTING);
// 获取文件的元数据
BasicFileAttributes attributes = Files.readAttributes(tempFile, BasicFileAttributes.class);
FileTime creationTime = attributes.creationTime();
```
注意:上述代码中使用了java.nio.file包中的类来获取文件的元数据。
通过上述步骤,你可以获取到MultipartFile的创建日期。
java 获取 MultipartFile
在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 ]