我的Grails应用程序在文件夹中生成文件(例如“输出”)。 如何公开该文件夹,以便通过以下URL公开输出文件:
http://localhost:8080/MyGrailsApp/output/myOutputFile1.xml
http://localhost:8080/MyGrailsApp/output/myOutputFile2.xml
干杯!
答案 0 :(得分:1)
你可以通过两种方式做到这一点。首先阅读您的应用程序服务器所在的文档,并在您的xml文件存储的任何目录中启用目录列表。如果您需要与应用程序服务器无关,第二个选项可能是创建一个使用URL映射自动加载的简单控制器并返回请求的文件。有关grails中URL映射的文档和示例,请参阅 http://www.grails.org/URL+mapping
答案 1 :(得分: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}"
}
}
更新网址映射文件
mappings {
"/output/$fileName?" {
controller = "output"
action = "viewFile"
}
}