在Spring Boot中使用MultipartFile加载本地文件可以通过以下步骤完成:
import org.springframework.web.multipart.MultipartFile;
import org.springframework.util.StringUtils;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.io.IOException;
@RestController
public class FileUploadController {
private static final String UPLOAD_DIR = "path/to/upload/directory"; // 设置上传文件保存的目录
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
// 检查文件是否为空
if (file.isEmpty()) {
return "请选择要上传的文件";
}
try {
// 获取文件名
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
// 设置文件保存的路径
Path uploadPath = Paths.get(UPLOAD_DIR).toAbsolutePath().normalize();
// 确保保存文件的目录存在,如果不存在则创建
Files.createDirectories(uploadPath);
// 将文件保存到本地
Path targetLocation = uploadPath.resolve(fileName);
Files.copy(file.getInputStream(), targetLocation, StandardCopyOption.REPLACE_EXISTING);
return "文件上传成功!";
} catch (IOException e) {
e.printStackTrace();
return "文件上传失败!";
}
}
}
StringUtils.cleanPath()
方法获取干净的文件名,以防止目录遍历攻击。Paths.get()
方法获取路径对象。我们使用Files.createDirectories()
方法确保保存文件的目录存在,如果不存在则创建。Files.copy()
方法将文件保存到本地。我们使用targetLocation
表示要保存的文件的路径,并使用StandardCopyOption.REPLACE_EXISTING
选项确保替换同名文件(如果存在)。@PostMapping
注解下定义了一个/upload
的URL映射,当客户端发送一个含有名为file
的文件参数的POST请求时,Spring Boot会自动调用uploadFile
方法,并将文件的内容作为MultipartFile
对象传递给该方法。通过以上步骤,我们可以在Spring Boot中使用MultipartFile加载本地文件,并将其保存到指定目录中。
腾讯云的相关产品和产品介绍链接地址:
请注意,以上链接只是腾讯云的相关产品和服务,其他云计算品牌商也提供类似的功能和服务,可以根据实际需求选择合适的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云