【发布时间】:2016-08-12 08:48:11
【问题描述】:
我的意图是显示图像,其结构如下:/images/username/。我的意图是将“完整的文件名,例如路径和文件名”作为字符串保存在数据库中。我正在使用 Grails 2.4.4...
我已经阅读了很多关于这个主题的文章,但没有找到我的问题的解决方案......
当我将图像放入目录 appname/web-app/images 时,我可以使用以下命令轻松地将其显示在 .gsp 中:
`<img src="${resource(dir: 'images', file: 'image.jpg')}" alt="Image"/>
但是当我尝试创建所需的结构时,例如/图像/用户名/通过 - 定义 appname/web-app/images/username 的子目录 - 在此目录中部署文件 image.jpg - 在 gsp 中使用以下命令:
<img src="${resource(dir: 'images/username', file: 'image.jpg')}" alt="Image"/>
生成的图片的html链接指向localhost:8080/appname/images/username/image.jpg,但是什么都没有显示
我进行了调查,应用服务器上有什么,发现如果我在控制器中以编程方式创建子目录:
def home (){
def baseFolder = grailsAttributes.getApplicationContext().getResource("/").getFile().toString()
def imagesFolder = baseFolder + '/images/username'
def tempFile=new File(imagesFolder)
tempFile.mkdir()
....
并将文件image.jpg放到myslef这个目录下,即gsp命令:
<img src="${resource(dir: 'images/username', file: 'image.jpg')}" alt="Image"/>
Grails 显示图像
我做错了什么?如何以某种文件系统结构显示图像,我会保存在数据库中?
是否只有“通过控制器”的方式,例如:grails display images in folder
一般来说,我想知道您对图像上传和显示真正有效的“最佳实践”的建议。通过对stackoverflow的研究,我了解到有两种方法: - 将图像保存在文件系统中(低性能影响、安全性?、部署?) - 将图像保存在数据库中(性能影响、合理的安全性和部署) 哪种方法更适合具有数千张图像的应用程序?由于性能影响,我的观点是第一选择,但我可能会弄错......
我不知道,有用于图像处理的 Grails 插件(Burning Image,...)。由于我的应用程序中有大量图像,我将不得不“标准化图像大小”,例如降低某些下载图像的质量或大小。 你能推荐我使用的插件吗?是否可以提供使用此插件的“完整工作示例”代码的链接?
非常感谢您的帮助和支持
【问题讨论】:
-
这里有一些有用的东西stackoverflow.com/questions/37755341/… - 你需要为你的使用采用它 - 我会说你的方法有缺陷 - 你将用户图像保持在可访问的路径上 - 使用该方法讨论过,您可以从 www 外部位置流式传输图像并使用 base64 图像显示它 - 它还包括动态调整图像大小.. 看看你是否可以从中刮出你需要的东西 - 如果你正在努力留下评论,我会今晚晚些时候提供一个howto作为答案