如何利用imge组件把数据库中图片以二进制流形式返回客户端?
linsy
2008-05-27
如何利用imge组件把数据库中图片以二进制流形式返回客户端?
请给具体思路。 |
|
misswolf
2008-05-28
我有一个例子,是tapestry5的
|
|
misswolf
2008-05-28
package com.misswolf.tapestry.web.components;
import java.io.InputStream; import java.util.List; import org.apache.tapestry.ComponentResources; import org.apache.tapestry.Link; import org.apache.tapestry.MarkupWriter; import org.apache.tapestry.StreamResponse; import org.apache.tapestry.annotations.BeginRender; import org.apache.tapestry.annotations.Parameter; import org.apache.tapestry.dom.Element; import org.apache.tapestry.ioc.annotations.Inject; import org.apache.tapestry.ioc.services.TypeCoercer; import com.misswolf.tapestry.web.pages.ImagePage; import com.misswolf.tapestry.web.util.JPEGAttachmentStreamResponse; /** * ����: MissWolf * ��дʱ��: 2008-5-15 * �����: Test * �������: xxx * ��ǰ�汾: v1.0 * �����: xxx * �����ʱ��: 2008-5-15 ����10:01:24 **/ public class Image { @Parameter(required=true) private List<Object> _context; @Parameter(required=true) private int _width; @Parameter(required=true) private int _height; @Inject private ComponentResources _resources; @Inject private TypeCoercer _coercer; @SuppressWarnings("unchecked") void beginRender(MarkupWriter writer) { // writer.element("a", "href", "http://www.sina.com.cn"); // writer.write("test"); Object[] contextArray = _context == null ? new Object[0] : _context .toArray(); Object[] params = new Object[contextArray.length + 2]; System.arraycopy(contextArray, 0, params, 2, contextArray.length); params[0] = new Integer(_width); params[1] = new Integer(_height); // generate action link Link link = _resources.createActionLink("image", false, params); Element img = writer.element("img", "src", link); img.attribute("width",String.valueOf(_width)); img.attribute("height",String.valueOf(_height)); } void afterRender(MarkupWriter writer) { writer.end(); } public StreamResponse onImage() { InputStream input = Image.class.getResourceAsStream("/1.jpg"); return new JPEGAttachmentStreamResponse(input); } } 这个是组件类 使用 <t:image width="200" height="150" context="image" /> |
|
linsy
2008-05-28
有T4的吗?
|
|
superaxis
2008-06-07
需要设定ContentType
T4中可以做成一个Service inal BufferedImage image = this.createCaptch(randomStr); //产生随机图片 //得到图片的数据 final ImageWriter writer = getImageWriter(mimeType); final byte[] bytes = toImageBytes(writer, image); //输出图片 _response.setContentLength(bytes.length); final OutputStream out = _response.getOutputStream(new ContentType(mimeType)); out.write(bytes); |
|
linsy
2008-06-07
登Q!登Q!
|
相关讨论
相关资源推荐
- 外闻:Techcrunch:WebOS时代或两年内落幕.docx
- asp.net 2.0揭秘读书笔记二:使用Rich控件
- 使用 ASP+ 列表绑定控件 (转自ms 一)
- HP OpenView NNM网管软件简介
- TechCrunch:Web2.0概念正降温2011年将灭亡
- node-techcrunch:一个用于访问techcrunch新闻的简单API
- TechCrunch:实体零售商需借移动技术自我救赎.docx
- [Web新闻]美科技博客:web 2.0网站或已成为过去式 (图)
- mypersonalfashion:Techcrunch Disrupt 2015年
- Techcrunch:将会成为2011年主流的七大IT技术