当前位置: 首页 > 面试题库 >

从Spring Controller获取Web应用程序根目录

斜浩穰
2023-03-14
问题内容

我正在尝试将上载的多部分文件写入文件系统。我有一个名为audio的目录,该目录位于Web应用程序的根目录中(不在WEB-
INF内,但在它旁边,可以像CSS和javascript一样公开访问)。

我想将上传的文件写入该目录,但似乎无法获取所需的路径。我以为使用ServletPath()然后使用realPath()可能可行,但是我没有通过Spring控制器对ServletContext的引用。谢谢你的帮助

@RequestMapping(value="/uploadSample")
public ModelAndView upload(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile f) {

    if (f == null) {
        return new ModelAndView("upload", "msg", "The file is null.");
    }
    try {
        // I need to set AUDIO_PATH to <webAppRoot>/audio
        FileOutputStream file = new FileOutputStream(AUDIO_PATH + "/" + f.getOriginalFilename());
        file.write(f.getBytes());
        file.close();
    }
    catch (FileNotFoundException ex) {
        Logger.getLogger(SampleUploadController.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (IOException ex) {
            Logger.getLogger(SampleUploadController.class.getName()).log(Level.SEVERE, null, ex);
    }



   return new ModelAndView("upload", "msg", "File ( " + f.getOriginalFilename() + ") successfully uploaded.");
}

}


问题答案:

我认为先获取ServletContext()然后使用realPath()可能有效,但是我没有对ServletContext的引用

是的你是。参见HttpServletRequest.getSession()。getServletContext()



 类似资料:
  • 问题内容: 我正在开发Flask扩展名,我想从该扩展名在文件系统上项目的根路径中创建目录。 假设我们有这个目录结构 my_folder应该由扩展名动态创建,扩展名是一个测试实用程序,并将被测试的应用程序包装在/ tests目录中。但是,我正在努力确定扩展中项目的根路径。 现在,我试图从运行文件中猜测路径: 一旦在IDE中而不是manage.py中运行测试,这显然会中断。我可以简单地推断出相对于ap

  • 我正在建立一个使用MERN Stack的图书馆管理系统,其中ISBN号是从免费的Google Book API中提取的。但我对如何获取应用程序的API感到困惑。

  • 问题内容: 有没有比确定正在运行的node.js进程的根目录更好的方法?类似于,但适用于Node.js。我正在寻找尽可能可预测和可靠的东西。 问题答案: 有几种方法可以解决此问题,每种方法各有利弊: require.main.filename 从http://nodejs.org/api/modules.html: 直接从Node运行文件时,将其设置为。这意味着您可以通过测试确定文件是否已经直接运

  • 本文向大家介绍.NET中获取程序根目录的常用方法介绍,包括了.NET中获取程序根目录的常用方法介绍的使用技巧和注意事项,需要的朋友参考一下 1、取得控制台应用程序的根目录方法 方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用

  • 问题内容: 我的Flask应用程序结构如下所示 当我运行时,它将在处启动服务器。在我,我尝试打开该文件作为 它给出了错误 如何访问此文件? 问题答案: 认为问题出在你/的道路上。删除,/因为与处于同一级别。 我建议将水平设置为或许多Flask用户喜欢使用,但我不喜欢。 如果这是你要设置的方式,请尝试以下操作: 现在,你可以轻松执行以下操作: 根据需要调整路径和级别。

  • 问题内容: 我已遵循Go网站上的“ 编写Web应用程序”教程,并且开始编写自己的Web应用程序。我还阅读了《如何编写Go代码》的开始,并尝试使用相同的工作区结构来组织我的代码。 我正在编写一个名为mygosite的简单Web应用程序,该应用程序通过呈现单个模板来处理所有请求。运行之后,我的目录结构现在看起来像这样: 在我的代码中,我指的是带有path的模板。运行时,应用程序找不到源模板,因为它位于