高分悬赏拉啦 关于处理流文件的问题 我调用一些接口,然后得到一些流文件,怎么样将这些流文件转换成图片不存储在本地直接显示在页面上啊???急!急!急!有知道的请快点告诉小弟一声哈 谢谢啦! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 后台流文件输出图片流前台<img src="/xx/xxxx/getImg"> 就应该可以了。 1、将此接收程序写一个Servlet,在其service方法中做如下处理:public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { //这里执行你的接口,后去图片数据 res.setContentType("image/jpeg"); //输出类型设置为图片类型 OutputStream out=res.getOutputStream();取得输出流 //把图片数据像写入out}2、在web.xml中配置此servlet,假设路径为 /dynamic/getImg3、前台使用<img src="/dynamic/getImg">就可以显示此图片 能不能写具体些啊 这个图片读出来以后是不能保存在本地的 这个事直接放在前台进行显示的我就是得到了一个输入流is(InputStream) 然后将这个流文件直接显示到前台 流文件转成图片以后不能保存在本地 直接显示 3楼已经写了主要处理内容,只是没有把从is读出byte[],写到out流中的语句写出。 InputStream is=//你的图片输入流OutputStream out=res.getOutputStream();取得页面输出流byte[] block=new byte[1024];int len=-1;while((len=is.read(block))>=0){ if (len>0){ out.write(block,0,len); }} 后台代码已可以获得一个图片的文件流,但是不想采用<img src="path/file" />的方式在HTML中展示 。因为这样需要将流保存成本地的一个文件,而这个文件只在一次HTTP响应中使用,多占用了磁盘空间 通常图片的生成就是把流写到硬盘上 然后以XX.GIF XX.JPG结尾的文件。你不生成文件而直接把流写出就成。 如下:package com.jsp.stream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URISyntaxException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ImageStream extends HttpServlet { private static final long serialVersionUID = -4666489996956619830L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { InputStream is = stream;//stream为你给出的流文件 OutputStream out = resp.getOutputStream();// 取得页面输出流 resp.setContentType("image/jpeg"); resp.setContentType("image/gif"); byte[] block = new byte[1024]; int len = -1; while ((len = is.read(block)) >= 0) { if (len > 0) { out.write(block, 0, len); } } out.flush(); out.close(); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }}Web部分配置:<servlet> <servlet-name>imageServlet</servlet-name> <servlet-class>com.jsp.stream.ImageStream</servlet-class></servlet><servlet-mapping> <servlet-name>imageServlet</servlet-name> <url-pattern>/myImageServlet</url-pattern></servlet-mapping>jsp文件通过下面的标签访问:<img src="<%=request.getContextPath()%>/myImageServlet"> s:if与<%=%> jsp创建错误页面问题 tomcat和IE的问题 如何模拟网页内的按钮动作并获取相应返回信息,请大侠赐教 你好 一个系统注销的问题,在线等,一定给分 网上购物 struts问题,错误提示Attribute maxLength invalid for tag text according to TLD Help!!! 关于jar windows下,jdk+tomcate+sqlserver? 向oracle这哦了那个插入Date? 着急···数据库查询又出问题了·····
throws ServletException, IOException {
//这里执行你的接口,后去图片数据
res.setContentType("image/jpeg"); //输出类型设置为图片类型
OutputStream out=res.getOutputStream();取得输出流
//把图片数据像写入out
}
2、在web.xml中配置此servlet,假设路径为 /dynamic/getImg3、前台使用<img src="/dynamic/getImg">就可以显示此图片
InputStream is=//你的图片输入流
OutputStream out=res.getOutputStream();取得页面输出流byte[] block=new byte[1024];
int len=-1;
while((len=is.read(block))>=0){
if (len>0){
out.write(block,0,len);
}
}
因为这样需要将流保存成本地的一个文件,而这个文件只在一次HTTP响应中使用,多占用了磁盘空间
结尾的文件。你不生成文件而直接把流写出就成。
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URISyntaxException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ImageStream extends HttpServlet { private static final long serialVersionUID = -4666489996956619830L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
try {
InputStream is = stream;//stream为你给出的流文件
OutputStream out = resp.getOutputStream();// 取得页面输出流
resp.setContentType("image/jpeg");
resp.setContentType("image/gif"); byte[] block = new byte[1024];
int len = -1;
while ((len = is.read(block)) >= 0) {
if (len > 0) {
out.write(block, 0, len);
}
}
out.flush();
out.close();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}Web部分配置:<servlet>
<servlet-name>imageServlet</servlet-name>
<servlet-class>com.jsp.stream.ImageStream</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imageServlet</servlet-name>
<url-pattern>/myImageServlet</url-pattern>
</servlet-mapping>jsp文件通过下面的标签访问:
<img src="<%=request.getContextPath()%>/myImageServlet">