struts项目向前台返回图片。

读取项目路径WebRoot下的图片

编写action

package com.sadj.market.action;

import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;

public class PublicAction extends ActionSupport{
    //定义输出到前台的输出流
    private ByteArrayInputStream imageStream;  

    private Logger logger=LoggerFactory.getLogger(Public.class);
    private static final long serialVersionUID = 1L;

    public String image() throws IOException{
        HttpServletRequest request = ServletActionContext.getRequest();
        //获取webroot下的文件
        String path   =   request.getSession().getServletContext().getRealPath("/")+"statics\\x.jpg";
        System.out.println(path);

        //创建文件输入流
        FileInputStream fis = new  FileInputStream(path);
        //放入bufferedInputStream
        BufferedInputStream bis=new BufferedInputStream(fis);
        //定义ByteArrayOutStream
        ByteArrayOutputStream output = new ByteArrayOutputStream(); 

        int c=bis.read();//读取bis流中的下一个字节
        while(c!=-1){
            output.write(c);
            c=bis.read();
        }

        bis.close();

        imageStream = new ByteArrayInputStream(output.toByteArray());

        return SUCCESS;
    }

    public ByteArrayInputStream getImageStream() {
        return imageStream;
    }

    public void setImageStream(ByteArrayInputStream imageStream) {
        this.imageStream = imageStream;
    }

}

编写struts.xml

<action name="image" class="com.sadj.market.action.PublicAction" method="image">
            <result name="success" type="stream">
                <param name="contentType">image/jpeg</param>
                <param name="inputName">imageStream</param>
                <param name="bufferSize">2048</param>
            </result>
      </action>

前台直接访问image这个action即可

时间: 2024-10-11 21:28:08

struts项目向前台返回图片。的相关文章

项目Extjs前台开发模版

今天趁着给大一大二的学生上课,整理下项目的前台源码,便于以后使用: //<!-- js页面模板 --> //此模板实现是所有常见的功能,如下拉列表,时间,网页编辑器,都对应一个案例,大家可以模仿开发其他功能. //下面每个要注意的点我都标注了,仔细粘贴,避免错误,建议大家ctrl+f对同名替换,保证属性一致哈. var ss = null; Ext.onReady(function() { Ext.BLANK_IMAGE_URL = 'ExtJs/resources/images/defaul

coco2dx jni 调用 java 相机返回 图片数据

新建 一个项目 名字:testJin  包名:com.TanSon.org  python命令:python create_project.py -project testJin -package com.TanSon.org -language cpp eclipse 导入项目配置 ... 略去,(可以google) 1 c++ 调用 andriod 1.1 包含头文件 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include <jni.

MVC返回图片

这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开始接触的朋友,可能不太清楚如何实现. 首先,我们应当从控制器入手,昨天有位朋友问我,控制器一般不都是return View的吗?那怎么返回图片? 当然,Controller类也没有return Image 的,上次我们的例子是返回JSON,其实我们可以让其返回一个文件流,一开始我也想过使用ViewD

asp.net处理网络返回图片

本文参考糅合自以下几个网站: 1.参考输出流:http://blog.csdn.net/lusend/article/details/8299398 2.参考二进制流转换(本文没用到):http://developer.51cto.com/art/200908/143612.htm 3.参考bitmap和image之间格式转换:http://www.cnblogs.com/peasana/archive/2012/02/13/2349165.html 4.参考页面不存在的时候返回图片:http:

.net项目中上传大图片失败

.net项目中有时用户提出要上传大图片,一张图片有可能十几兆,本来用的第三方的上传控件,有限制图片上传大小的设置,以前设置的是2M.按照用户的要求,以为直接将限制图片上传大小的设置改下就可以了,但是当上传大图片的时,总是异常:  错误消息:超过了最大请求长度. 解决方案: 错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S. 修改web.config中配置 <configuration> <system.web> <httpRuntime useFull

开源项目WebImageView加载图片

项目地址:https://github.com/ZaBlanc/WebImageView 作者对加载图片,以及图片的内存缓存和磁盘缓存做了封装. 代码量不多,但是能够满足一般的加载图片. 先看下项目结构: 我认为通常情况下自己去实现的话,这点需要仔细看下. /** * * @param urlString 对应图片的网络地址 * @return */ private String hashURLString(String urlString) { try { // Create MD5 Hash

C# 返回图片的字节流byte[]

#region 返回图片的字节流byte[] /// <summary> /// 返回图片的字节流byte[] /// </summary> /// <param name="imagePath"></param> /// <param name="webClient"></param> /// <returns></returns> public static byte

近期Responsive web design项目经验分享-高分辨率图片处理篇

在高分辨率的情况下  商品的图片难免会失真 怎样才能让商品的图片在高分辨率的情况下 效果不失真 提供用户更好的体验呢 我发现了一个解决方案 不知道是不是你想要的 先上图片对比下效果 左侧是使用后     右侧是使用前 差距还是比较大的 感兴趣的小伙伴  可以下载源码  自己尝试一下 https://github.com/scottjehl/picturefill PICTUREFILL The Web is truly worldwide, and we have to confront the

android-async-http开源项目对服务器端返回JSON数据的处理

一.在JavaEE项目中搭建环境 1. 导入相关jar包 2. 搭建相关的包和类 3.类中的方法简单实现 User: 声明以下属性,并实现无参构造器和有参构造器,以及各自的get和set方法 UserDao: UserDaoImpl: JsonServlet: <span style="white-space:pre"> </span>protected void doGet(HttpServletRequest request, HttpServletResp