【发布时间】:2023-01-27 06:07:25
【问题描述】:
我想接收文件并将它们保存在资源内的文件夹中。我有这个端点
public ResponseEntity<String> uploadPhoto(@RequestParam("file") MultipartFile file) {
try {
String photoName = file.getOriginalFilename();
String path = servletContext.getClassLoader().getResource("resources/static/photos/").getPath() + photoName;
try (FileOutputStream fileOutputStream = new FileOutputStream(path)) {
fileOutputStream.write(file.getBytes());
}
return ResponseEntity.ok().build();
} catch (Exception e) {
log.info(e);
return ResponseEntity.status(400).body(Exceptions.BAD_REQUEST.getMessage());
}
}
在本地,它将文件真正保存到我需要的地方。但是我在服务器上也有这个应用程序的一个版本。我用这个应用程序运行一个 JAR。我的文件
FROM openjdk:11
ARG JAR_FILE=build/libs/appname-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
我试图在服务器上以这种形式运行应用程序,但出现错误“没有这样的目录”。我试过了
servletContext.getClassLoader().getResource()
方法并接收此路径
file:/app.jar!/BOOT-INF/classes!/
我应该怎么做才能获得资源路径?
【问题讨论】:
标签: java spring file resources