Как сделать каталог общедоступным на Grails? - PullRequest
1 голос
/ 30 августа 2010

мое приложение Grails генерирует файлы в папке (например, «вывод»).Как я могу сделать эту папку общедоступной, чтобы открыть выходные файлы через URL-адреса, такие как:

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

Cheers!

Ответы [ 2 ]

1 голос
/ 30 августа 2010

Два способа сделать это. Во-первых, прочитайте документацию по вашему серверу приложений и включите список каталогов в любом каталоге, в котором хранятся ваши XML-файлы. Если вам нужно быть независимым от сервера приложений, во-вторых, можно создать простой контроллер, который использует сопоставление URL-адресов для автоматической загрузки. и верните запрошенный файл. Для документации и примеров сопоставления URL в Grails см. http://www.grails.org/URL+mapping

0 голосов
/ 31 августа 2010

Этот код не идеален или не проверен, просто введите его здесь, но он должен направить вас в правильном направлении

создать контроллер с именем 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}"
    }
}

updateфайл отображений URL

mappings {
  "/output/$fileName?" {
      controller = "output"
      action = "viewFile"
  }
}
...