在我的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目录渲染?
请帮忙。
答案 0 :(得分:0)
我会从您应用的外的某处上传并提供这些图片。例如,将图像上传到S3(或类似图像)并使其可公开访问,以便您仍然可以在应用程序中引用它们。要么跟踪数据库中的图像URL,要么使用允许您在应用程序中构建图像URL的约定。
您还可以使用服务器上的目录存储图像,然后以某种方式公开访问它们。您可以serve them via Tomcat using a different context或使用Apache将请求定向到您的应用或直接提供图片。
希望这是有道理的。