梅花6984 发表于 2016-6-9 07:40:23

页面中显示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 zouqiang@neusoft.com * @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>属性描述: </p>   */    private string ip = propertiesutil.getsetting("ftp.ip", "");    /**   * <p>属性描述: </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 zouqiang@neusoft.com * @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 ftpurlftp的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());            }      }    }} 
页: [1]
查看完整版本: 页面中显示ftp中的图片