multipartfile保存到本地
时间: 2023-04-27 15:02:17 浏览: 75
要将MultipartFile保存到本地,可以按照以下步骤进行:
1. 获取MultipartFile对象的字节数组
byte[] bytes = file.getBytes();
2. 创建本地文件
File localFile = new File("文件路径");
3. 将字节数组写入本地文件
Files.write(localFile.toPath(), bytes);
其中,文件路径可以是绝对路径或相对路径。如果是相对路径,则相对于当前工作目录。
完整代码示例:
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
byte[] bytes = file.getBytes();
File localFile = new File("文件路径");
Files.write(localFile.toPath(), bytes);
return "上传成功";
}
相关问题
MultipartFile保存到本地
可以使用以下代码将MultipartFile保存到本地:
```java
public void saveFile(MultipartFile file) throws IOException {
String fileName = file.getOriginalFilename();
String filePath = "/path/to/save/" + fileName;
File dest = new File(filePath);
file.transferTo(dest);
}
```
其中,`file.getOriginalFilename()`获取上传文件的原始文件名,`/path/to/save/`是文件保存的路径,可以根据实际情况修改。
将MultipartFile保存到本地
要将MultipartFile保存到本地,可以使用Java中的FileUtils类或者OutputStream和InputStream流。下面是使用FileUtils类的示例代码:
```java
public void saveFileByDirectory(MultipartFile file) {
try {
// 将文件保存在服务器目录中
// 文件名称
String uuid = UUID.randomUUID().toString();
// 得到上传文件后缀
String originalName = file.getOriginalFilename();
String ext = "." + FilenameUtils.getExtension(originalName);
// 新生成的文件名称
String fileName = uuid + ext;
// 复制文件
File targetFile = new File("D:\\sim-file\\", fileName);
FileUtils.writeByteArrayToFile(targetFile, file.getBytes());
} catch (IOException e) {
logger.error("保存文件到服务器(本地)失败", e);
}
}
```
另外,使用OutputStream和InputStream流的示例代码如下:
```java
public static void saveFileByStream(MultipartFile file) {
OutputStream os = null;
InputStream inputStream = null;
String fileName = null;
try {
inputStream = file.getInputStream();
fileName = file.getOriginalFilename();
log.info("fileName=" + fileName);
} catch (IOException e) {
e.printStackTrace();
}
try {
String path = "F:\\test\\";
// 2、保存到临时文件
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流保存到本地文件
File tempFile = new File(path);
if (!tempFile.exists()) {
tempFile.mkdirs();
}
os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);
// 开始读取
while ((len = inputStream.read(bs)) ! -1) {
os.write(bs, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 完毕,关闭所有链接
try {
os.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```