package com.ard.route.util;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.net.URL;
|
import java.nio.file.Files;
|
|
/**
|
* Author:Cleaner
|
* Date: 2025/5/29 17:16
|
**/
|
public class FileUtils {
|
public static File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
|
// 获取原始文件名
|
String originalFilename = multipartFile.getOriginalFilename();
|
// 创建临时文件(建议加上后缀)
|
File file = File.createTempFile("temp-", originalFilename != null ? originalFilename.substring(originalFilename.lastIndexOf(".")) : null);
|
// 将 MultipartFile 转为 File
|
multipartFile.transferTo(file);
|
// JVM 退出时删除临时文件(可选)
|
file.deleteOnExit();
|
return file;
|
}
|
|
public static File downloadUrlToTempFile(String urlStr) throws IOException {
|
URL url = new URL(urlStr);
|
File tempFile = Files.createTempFile("download-", "zip").toFile();
|
try (InputStream in = url.openStream(); FileOutputStream out = new FileOutputStream(tempFile)) {
|
byte[] buffer = new byte[8192];
|
int bytesRead;
|
while ((bytesRead = in.read(buffer)) != -1) {
|
out.write(buffer, 0, bytesRead);
|
}
|
}
|
tempFile.deleteOnExit(); // JVM 退出时删除
|
return tempFile;
|
}
|
}
|