grails 3加载图像外部文件夹
grails 3 load image external folder
我想从部署了 grails 应用程序的同一服务器的外部文件夹加载图像。让我们说 linux - 用户主页。
我在网上找到了很多文章,但都没有成功。
我的.gsp
代码是尝试:
<asset:image src="libs/test/1.jpg" alt=""/>
<asset:image src="images/2.jpg" alt=""/>
<img src="${asset.assetPath(src: '13123.jpg')}" />
<img src="\home\user\img\Desert.jpg" />
我需要这样的东西:
<img src="${userhome}/image.jpg" />
其中 userhome 是预定义的文件夹。
另一个使用资产管道插件的问题我得到这个错误:
Byte array resource [resource loaded from byte array] cannot be resolved to URL
您不能使用 asset 标签指向外部文件。但是您可以从文件系统中检索文件并将其 "attach" 以字节数组的形式响应,控制器操作的示例:
def getImage() {
byte[] imageInBytes = imageService.getImage()
response.with{
setHeader('Content-length', imageInBytes.length.toString())
contentType = 'image/jpg' // or the appropriate image content type
outputStream << imageInBytes
outputStream.flush()
}
}
服务逻辑可能如下所示:
byte[] getImage() {
ByteArrayOutputStream baos = new ByteArrayOutputStream()
ImageIO.write(ImageIO.read(new File('/path/to/file')), "jpg", baos)
baos.toByteArray()
}
最后是您的 gsp 上的 img 标签:
<img ... src="${createLink(controller: 'imageController', action: 'getImage')}" />
您可能想要使用 ID 和 URL 映射来使用服务逻辑检索特定图像。
我想从部署了 grails 应用程序的同一服务器的外部文件夹加载图像。让我们说 linux - 用户主页。
我在网上找到了很多文章,但都没有成功。
我的.gsp
代码是尝试:
<asset:image src="libs/test/1.jpg" alt=""/>
<asset:image src="images/2.jpg" alt=""/>
<img src="${asset.assetPath(src: '13123.jpg')}" />
<img src="\home\user\img\Desert.jpg" />
我需要这样的东西:
<img src="${userhome}/image.jpg" />
其中 userhome 是预定义的文件夹。
另一个使用资产管道插件的问题我得到这个错误:
Byte array resource [resource loaded from byte array] cannot be resolved to URL
您不能使用 asset 标签指向外部文件。但是您可以从文件系统中检索文件并将其 "attach" 以字节数组的形式响应,控制器操作的示例:
def getImage() {
byte[] imageInBytes = imageService.getImage()
response.with{
setHeader('Content-length', imageInBytes.length.toString())
contentType = 'image/jpg' // or the appropriate image content type
outputStream << imageInBytes
outputStream.flush()
}
}
服务逻辑可能如下所示:
byte[] getImage() {
ByteArrayOutputStream baos = new ByteArrayOutputStream()
ImageIO.write(ImageIO.read(new File('/path/to/file')), "jpg", baos)
baos.toByteArray()
}
最后是您的 gsp 上的 img 标签:
<img ... src="${createLink(controller: 'imageController', action: 'getImage')}" />
您可能想要使用 ID 和 URL 映射来使用服务逻辑检索特定图像。