Spring Boot 应用的应用根路径

新手上路,请多包涵

这个 答案 不是获取应用程序根路径(文件系统路径)的标准方法。我需要将文件上传到目录,例如在应用程序主目录中创建的上传。如何在我的 Java 类中获取应用程序根路径。我正在开发 Rest API。请在这方面提供帮助。

原文由 Bahadar Ali 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 481
1 个回答

如果我理解正确,您想开发一个 REST API,旨在将文件上传到位于您的应用程序目录中的目录。建议在资源目录中创建文件、图像等。基本上你应该使用 servlet 上下文来获取这个目录的绝对路径。首先你需要servletContext

 @Autowired
ServletContext context;

然后你可以获得绝对和 相对目录(“资源/上传”)

 String absolutePath = context.getRealPath("resources/uploads");
File uploadedFile = new File(absolutePath, "your_file_name");

编辑:

您想开发 rest api。所以你可以先创建一个控制器类

@RestController
@RequestMapping("/file")
public class FileController {

@Autowired
ServletContext context;

@PostMapping("/upload")
public String fileUpload(@RequestParam("file") MultipartFile file) {

    if (file.isEmpty()) {
       throw new RuntimeException("Please load a file");
    }

    try {

        // Get the file and save it uploads dir
        byte[] bytes = file.getBytes();
        Path path = Paths.get(context.getRealPath("uploads") + file.getOriginalFilename());
        Files.write(path, bytes);

    } catch (IOException e) {
        e.printStackTrace();
    }

    return "success";
}

}

还有另一种管理文件操作的方法,Spring Boot文档解释的很好: Uploading Files Spring Boot

原文由 fiskra 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题