【问题标题】:Display of image files using Grails使用 Grails 显示图像文件
【发布时间】: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作为答案

标签: image grails plugins


【解决方案1】:

最后,我在 InteliJ Idea IDE 上测试了我的代码,一切正常。然后我详细说明了为什么我无法在 GGTS 上成功运行我的代码,发现我必须在更改图像文件位置的结构后“重建”项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多