页面中显示ftp中的图片

   
/** * <p>项目名称: 上汽inkanet项目</p> * <p>厂商: 东软集团股份有限公司</p> * <p>部门: avnc&amp;is事业部国内业务一部</p> * <p>版权: copyright (c) 2011</p> */package com.sais.inkanet.common.displayimage;import com.opensymphony.xwork2.actionsupport;import com.sais.inkanet.base.util.ftpimagedisplay;import com.sais.inkanet.base.util.propertiesutil;import org.apache.log4j.logger;import org.apache.struts2.servletactioncontext;import javax.servlet.http.httpservletresponse;/** * <p>类名称: [图片显示action]</p> * <p>类描述: [根据提供的路径到ftp中以流的方式获得图片]</p> * <p>所属模块: 上汽inkanet项目_[模块名称]</p> * <p>创建时间 7/14/11 12:56 pm </p>  * @author zouqiang [email protected] * @version 1.0*/public class displayimageaction extends actionsupport {	private static final long serialversionuid = 1l;	private static final logger log = logger.getlogger(displayimageaction.class);    /**     * <p>属性描述: [要访问的图片url]</p>     */    private string imageurl;    /**     * <p>属性描述: [ftp ip地址]</p>     */    private string ip = propertiesutil.getsetting("ftp.ip", "");    /**     * <p>属性描述: [ftp密码]</p>     */    private string password = propertiesutil.getsetting("ftp.password", "");    //---------ftp---------    /**     * <p>属性描述: [用户名]</p>     */    private string username = propertiesutil.getsetting("ftp.username", "");    /**     * <p>方法描述: [获得ftp中的图片用于页面显示]</p>    *    * @return 返回结果的说明    *    * @throws exception 抛出异常的原因    */    @override    public string execute() throws exception {    	log.info("-->获得ftp图片,imageurl:"+imageurl);        /**                1.+ 表示空格(在 url 中不能使用        空格)    %20                2./ 分隔目录和子目录                                         %2f                3.? 分隔实际的 url 和参数                                %3f                4.% 指定特殊字符                                              %25                5.# 表示书签                                                     %23                6.&amp; url 中指定的参数间的分隔符                       %26                7.@     %40         */    	imageurl = imageurl.contains("\\") ? imageurl.replace("\\", "%2f") : imageurl;        imageurl = imageurl.contains("/") ? imageurl.replace("/", "%2f") : imageurl;        password = password.contains("@")?password.replace("@", "%40"):password;        httpservletresponse response = servletactioncontext.getresponse();        ftpimagedisplay.getftpimage(username, password, ip, imageurl, response);        return none;    }    public string getimageurl() {        return imageurl;    }    public void setimageurl(string imageurl) {        this.imageurl = imageurl;    }}
 /** * <p>项目名称: 上汽inkanet项目</p> * <p>厂商: 东软集团股份有限公司</p> * <p>部门: avnc&amp;is事业部国内业务一部</p> * <p>版权: copyright (c) 2011</p> */package com.sais.inkanet.base.util;import org.apache.log4j.logger;import java.io.ioexception;import java.io.inputstream;import java.io.outputstream;import java.net.url;import java.net.urlconnection;import javax.servlet.http.httpservletresponse;/** * <p>项目名称: 上汽inkanet项目</p> * <p>厂商: 东软集团股份有限公司</p> * <p>部门: avnc&amp;is事业部国内业务一部</p> * <p>版权: copyright (c) 2011</p> *//** * <p>类名称: [获得ftp图片]</p> * <p>类描述: [获得ftp中的图片]</p> * <p>所属模块: 上汽inkanet项目</p> * <p>创建时间 7/14/11 10:45 am </p> * @author zouqiang [email protected] * @version 1.0*/public class ftpimagedisplay {    /**     * <p>属性描述: [声明日志]</p>     */    private static final logger log = logger.getlogger(ftpimagedisplay.class);    /**     * <p>方法描述: [从ftp中获得图片流返给页面]</p>    *    * @param username 用户名    * @param password 密码    * @param ftpurl  ftp的url    * @param fileurl 文件路径    * @param response response对象    */    public static void getftpimage(string username, string password, string ftpurl, string fileurl,                                   httpservletresponse response) {        inputstream isr = null;        outputstream out = null;        url u  = null;        try {            if ((fileurl != null) &amp;&amp; !"".equals(fileurl)) {                response.setheader("content-type", "image/png"); //response.setcontenttype("image/*"); // 设置返回的文件类型                 out = response.getoutputstream();                stringbuffer sb = new stringbuffer("ftp://");                sb.append(username + ":");                sb.append(password + "@");                sb.append(ftpurl + "/" + fileurl);                u = new url(sb.tostring());                urlconnection urlconn = u.openconnection();                isr = urlconn.getinputstream();                int len = urlconn.getcontentlength();                int i = len;                int c;                while (((c = isr.read()) != -1) &amp;&amp; (--i > 0)) {                    out.write(c);                }                log.info("获取ftp图片" + fileurl);            } else {                log.warn("所要显示的图片路径为空");            }        } catch (exception e) {        log.error(e.getmessage());        } finally {            try {                            if (isr != null) {                    isr.close();                }                if (out != null) {                    out.close();                }            } catch (ioexception e) {            log.error(e.getmessage());            }        }    }}
 
 

你可能感兴趣的:(java,工作)