1

我的 Grails 应用程序在文件夹中生成文件(例如“输出”)。如何使该文件夹公开,以便通过以下 URL 公开输出文件:

http://localhost:8080/MyGrailsApp/output/myOutputFile1.xml
http://localhost:8080/MyGrailsApp/output/myOutputFile2.xml

干杯!

4

2 回答 2

1

有两种方法可以做到这一点。首先是阅读您的应用程序服务器的文档,并在存储 xml 文件的任何目录上启用目录列表。如果您需要与应用程序服务器无关,第二个选项可能是创建一个使用 URL 映射自动加载的简单控制器并返回请求的文件。有关 grails 中 URL 映射的文档和示例,请参见 http://www.grails.org/URL+mapping

于 2010-08-30T12:24:49.467 回答
0

这段代码不是完美的或经过测试的,只是在这里输入,但它应该让你朝着正确的方向前进

创建一个名为 OutputController.groovy 的控制器

def viewFile = {

    // add checks to ensure fileName parameter has no "/" or ".." to
    // prevent directory transversal

    def file = new File(OUTPUT_FILE_PATH + params?.fileName)

    if (file.exists()) {
        render(text: file.newInputStream().text, contentType: "text/plain",
                       encoding: "UTF-8")
    } else {
        render "FILE NOT FOUND: ${params?.fileName}"
    }
}

更新 url 映射文件

mappings {
  "/output/$fileName?" {
      controller = "output"
      action = "viewFile"
  }
}
于 2010-08-30T22:32:20.040 回答