我需要显示的图像是在文件系统没有在Grails项目目录.. 我用
的Grails: - 如何显示文件系统映像
< img src="${createLinkTo(dir: '/Users/ME/ddImages/reg/', file: '${userInstance.fileName}.jpg')}" alt="User Photo"/>
但似乎没有不工作
有帮助吗?
我需要显示的图像是在文件系统没有在Grails项目目录.. 我用
的Grails: - 如何显示文件系统映像
< img src="${createLinkTo(dir: '/Users/ME/ddImages/reg/', file: '${userInstance.fileName}.jpg')}" alt="User Photo"/>
但似乎没有不工作
有帮助吗?
顺便说一下,grails标记被删除,使用资源;而该标签将让你的应用程序的基本路径内
http://www.grails.org/Tag+-+createLinkTo
文档的img标签 http://www.w3schools.com/tags/att_img_src.asp,
可能值 “SRC”
An absolute URL - points to another web site (like src="http://www.example.com/image.gif")
A relative URL - points to a file within a web site (like src="image.gif")
认为你是想呈现不在您项目的webroot中的文件。您无法通过简单地将URL传递给您的视图来完成此操作。 你可以这样做的一种方式是将图像文件作为流读取,然后写入字节流以查看。 e.g:
<img src="${request.contextPath}/controllerName/getImage?filepath=${path_to_file_in_filesystem}" alt="whatever. alternatively, filename"/>
然后在控制器的动作看起来就像这样:
def getImage(){
def path = params.filepath
//returns an image to display
BufferedImage originalImage = ImageIO.read(new File(path));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
def fileext = path.substring(path.indexOf(".")+1, path.length())
ImageIO.write(originalImage, fileext, baos);
baos.flush();
byte[] img = baos.toByteArray();
baos.close();
response.setHeader('Content-length', img.length.toString())
response.contentType = "image/"+fileext // or the appropriate image content type
response.outputStream << img
response.outputStream.flush()
}
应该这样做。希望这可以帮助某人。
是的,我知道这是depricated先生......但事情是这样的。 不会为我工作,从来没有得到过像..所以什么是你想要在客户端上呈现的页面从服务器上的目录加载图像问题 – 2010-09-03 12:46:33
- 抱歉,但它不工作这办法。客户端只能从绝对或相对URL加载图像(如Aaron提到的)。要么把图像应用程序下,或映射目录,使其可通过URL访问。 – 2010-09-03 15:28:23