如何在运行时在grails 3 app中保存assets文件夹中的图像?

时间:2018-05-23 16:05:03

标签: grails file-upload asset-pipeline

在我的grails应用程序中,我需要在我的视图中上传和图像并渲染相同的图像。 我可以通过以下代码在src / main / webapp目录中上传图像文件:

def webrootDir = servletContext.getRealPath("/") //app directory
    String imageDestination = webrootDir + params.id;
    if(image){
        File uploadedImage = new File(webrootDir,"${params.id}");
        println "uploadedImage = ${uploadedImage.getAbsoluteFile()}"
        if(uploadedImage?.exists()){
            uploadedImage.delete()
        }
        image.transferTo(uploadedImage);}

但我无法在<img>标记中从此位置呈现图片。 有没有办法在上传时将文件放在assets目录中,或者有没有办法从src / main / webapp目录渲染? 请帮忙。

1 个答案:

答案 0 :(得分:0)

我会从您应用的的某处上传并提供这些图片。例如,将图像上传到S3(或类似图像)并使其可公开访问,以便您仍然可以在应用程序中引用它们。要么跟踪数据库中的图像URL,要么使用允许您在应用程序中构建图像URL的约定。

您还可以使用服务器上的目录存储图像,然后以某种方式公开访问它们。您可以serve them via Tomcat using a different context或使用Apache将请求定向到您的应用或直接提供图片。

希望这是有道理的。