springboot 将InputStream转MultipartFile的具体实现代码
时间: 2024-10-11 15:07:35 浏览: 40
在Spring Boot中,将`InputStream`转换为`MultipartFile`通常是在处理上传文件时发生的。这里是一个简单的示例,展示了如何在控制器方法中实现这个转换:
```java
import org.springframework.web.multipart.MultipartFile;
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
throw new IllegalArgumentException("File is empty");
}
try (InputStream inputStream = file.getInputStream()) {
// 这里可以读取InputStream的内容并保存到数据库、文件系统或其他地方
byte[] bytes = StreamUtils.copyToByteArray(inputStream);
// 对bytes进行进一步的操作,例如存储到服务器路径
saveFile(bytes, "user-uploads/" + file.getOriginalFilename());
return "File uploaded successfully";
} catch (IOException e) {
throw new RuntimeException("Failed to read file", e);
}
}
private void saveFile(byte[] bytes, String fileName) {
// 这里省略了具体的文件保存逻辑
// 可能涉及到数据库操作或者其他文件存储服务
}
```
在这个例子中,我们首先检查文件是否为空,然后通过`getInputStream()`获取到`InputStream`,接着使用`StreamUtils.copyToByteArray()`将其内容复制到字节数组`byte[]`,最后可以根据需要进行进一步处理。
阅读全文