博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现用struts2流信息获得图片
阅读量:5297 次
发布时间:2019-06-14

本文共 1879 字,大约阅读时间需要 6 分钟。

 

我们试着这样写:

可以很清楚的看到,我们试图从指定的Action中获取一张图片。这个问题的关键是在后台该如何写。

先看Action的代码:

public class ShowImgAction extends BaseAction {    // 图片相对路径    protected String imagePath = null;    public String showImg() {        // 默认的导向页面        String strForward = FORWARD_SUCCESS;// 默认导向        // 返回函数值        return strForward;    }    /**     * @描述:读取图片输入流     * @开发人员:moshco zhu     * @开发时间:2011-5-24 上午10:28:35     * @return     * @throws FileNotFoundException     */    public InputStream getDownloadFile()            throws FileNotFoundException {        // 文件输出流         BufferedInputStream bis = null;        try {            if (imagePath == null                    || imagePath.trim().length() <= 0) {                return null;            }            // 读取图片            String strImgRooPath = "E:/images";            String strImgPath = strImgRooPath + "/"                    + imagePath;            File fl = new File(strImgPath);            if (!fl.exists()) {                return null;            }            // 读取生成的图片            FileInputStream fis = new FileInputStream(fl);            bis = new BufferedInputStream(fis);        } catch (Throwable t) {            t.printStackTrace();        }        // 返回函数值        return bis;    }    public String getImagePath() {        return imagePath;    }    public void setImagePath(String imagePath) {        this.imagePath = imagePath;    }}

这里面最重要的是getDownloadFile()方法,他返回的一个输出流。

然后,我们看看最重要的struts.xml里面是怎么写的:

image/gif
downloadFile
4096

这个result的类型是stream。里面参数的意思分别是:文件类型、获取流的方法、缓冲区字节。

 

就是这样,就能从后台取出想要的图片了。

 

注:1、代码里面的BaseAction是项目框架中自定义的一个类,不是struts2类库中的。大家可以继承ActionSupport就行了。

  2、关于文件类型描述,可以在Tomcat/conf/web.xml中520行左右的类型说明中找到!

 

 

 

转载于:https://www.cnblogs.com/china-li/archive/2012/12/03/2799390.html

你可能感兴趣的文章
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
软件测试(基础理论一)摘
查看>>
consonant combination
查看>>
基于Flutter实现的仿开眼视频App
查看>>
析构器
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
https通讯流程
查看>>
Swagger简单介绍
查看>>
C# 连接SQLServer数据库自动生成model类代码
查看>>
关于数据库分布式架构的一些想法。
查看>>
大白话讲解 BitSet
查看>>
sql语句中where与having的区别
查看>>
Python数据分析入门案例
查看>>
0x7fffffff的意思
查看>>
Java的值传递和引用传递
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>