my java learning

1,首先是html页面(imgTest.jsp)


    <span class="htgl_addpro_content_high_content" style="margin-left: 10px;">
       <p>
           <img id="imgsrc" src="&lt;%=basePath%&gt;images/nopic.gif" width="131" height="180"></p>
       <p>
           <input type="text" id="imageUrlTmp" name="htglBookInfo.imageName" disabled value="" style="width: 220px; height: 28px; float: left;" class="txt1 isChanged"><input type="hidden" id="imageUrl" name="htglBookInfo.imageName" value="" style="width: 400px; height: 28px; float: left;" class="txt1 isChanged"><input id="chooseImg" type="button" class="darkBtn" value="浏览" style="height: 34px; width: 100px; margin-left: 45px; float: left;" size="10">&lt;!-- &lt;label style="color:red"&gt;(*.jpg; *.gif;)&lt;/label&gt; --&gt;<input type="file" id="fileField1" style="" name="file"><input type="text" style="" value="&lt;%=basePath%&gt;" id="imgPath"><input type="text" style="" id="imgUrlToDb" name="htglBookInfo.imageUrl" value="${htglBookInfo.imageUrl }"></p>
   </span>



2,struts配置(struts.xml)

&lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;struts&gt;&lt;!-- &lt;interceptor-stack name="fileUploadStack"&gt;
                    &lt;interceptor-ref name="fileUpload" /&gt;
                    &lt;interceptor-ref name="defaultStack" /&gt;
    &lt;/interceptor-stack&gt; --&gt;&lt;constant name="struts.devMode" value="true"&gt;&lt;/constant&gt;&lt;constant name="struts.xwork.chaining.copyErrors" value="true"&gt;&lt;/constant&gt;&lt;constant name="struts.xwork.chaining.copyFieldErrors" value="true"&gt;&lt;/constant&gt;&lt;constant name="struts.xwork.chaining.copyMessages" value="true"&gt;&lt;/constant&gt;&lt;constant name="struts.multipart.maxSize" value="10485760"&gt;&lt;/constant&gt;&lt;include file="struts-default.xml"&gt;&lt;/include&gt;&lt;!-- &lt;interceptor-stack name="fileUploadStack"&gt;
                    &lt;interceptor-ref name="fileUpload" /&gt;
                    &lt;interceptor-ref name="defaultStack" /&gt;
            &lt;/interceptor-stack&gt; --&gt;&lt;package name="wxcm" extends="json-default"&gt;&lt;!-- &lt;interceptors&gt;
            &lt;interceptor-stack name="fileUploadStack"&gt;
                    &lt;interceptor-ref name="fileUpload" /&gt;
                    &lt;interceptor-ref name="defaultStack" /&gt;
            &lt;/interceptor-stack&gt;
        &lt;/interceptors&gt; --&gt;&lt;!-- 图片文件上传 --&gt;&lt;action name="imgUpLoad" class="imageUpload" method="imgUpLoad"&gt;&lt;!-- &lt;interceptor-ref name="defaultStack"&gt;
                &lt;param name="fileUpload.maximumSize"&gt;20971520&lt;/param&gt;
                &lt;param name="fileUpload.allowedTypesSet"&gt;image/jpeg,application/octet-stream,image/bmp,image/gif&lt;/param&gt;
            &lt;/interceptor-ref&gt; --&gt;&lt;interceptor-ref name="fileUploadStack"&gt;&lt;/interceptor-ref&gt;&lt;result type="json" name="success"&gt;&lt;param name="root"&gt;htglImgUrl
                &lt;param name="contentType"&gt;text/html
                &lt;param name="bufferSize"&gt;40960
                &lt;!-- &lt;param name="contentType"&gt;image/jpeg,image/gif,image/bmp&lt;/param&gt; --&gt;
            &lt;/result&gt;&lt;result type="json" name="error"&gt;&lt;param name="contentType"&gt;
                    text/html
               
            &lt;/result&gt;&lt;/action&gt;&lt;!-- 图片文件预览--&gt;&lt;action name="showImg" class="imageUpload" method="showImg"&gt;&lt;result name="imgReadSuccess" type="stream"&gt;&lt;param name="contentType"&gt;image/jpeg,image/gif,image/bmp
                &lt;param name="inputName"&gt;imageStream
                &lt;param name="bufferSize"&gt;4096
            &lt;/result&gt;&lt;/action&gt;&lt;!-- 图片文件显示--&gt;&lt;!-- &lt;action name="toShowImage" class="imageDownload" method="toShowImage"&gt;
            &lt;result name="imgReadSuccess" type="stream"&gt;
                &lt;param name="contentType"&gt;image/jpeg,image/gif&lt;/param&gt;
                &lt;param name="inputName"&gt;imageStream&lt;/param&gt;
                &lt;param name="bufferSize"&gt;4096&lt;/param&gt;
            &lt;/result&gt;
        &lt;/action&gt; --&gt;&lt;/package&gt;&lt;/struts&gt;


3,图片上传action(ImageUpload.java)

package xtyl.action;

import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.imageio.ImageIO;

import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import net.coobird.thumbnailator.Thumbnails;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

import common.util.SmbUtil;

public class ImageUpload extends ActionSupport {

    /**
     *
     */
    private static final long serialVersionUID = 2834338485790652521L;

    /**
     * 图片文件
     */
    protected File file = null;
    protected String fileFileName = null;

    private static String rootPath = null;
   
    static{
        rootPath = ServletActionContext.getServletContext().getRealPath("/");
    }
   
    /**
     * 返回图片在服务器的路径
     */
    private JSONArray htglImgUrl;

    /**
     * 编辑时需要显示的图片的名称
     */
    private String imgPath = null;

    /**
     * 图片流
     */
    private ByteArrayInputStream imageStream;

    /**
     * 预览图片
     *
     * @return String
     */
    public String imgUpLoad() {
        LOG.debug("method imgUpLoad start!");
        // 复制到指定目录
       
        //String fileName = "thisImgName" + fileFileName.substring(fileFileName.lastIndexOf("."));
        String templatePath = rootPath + "uploadImgFile/" + fileFileName;

        try {
            FileUtils.copyFile(file, new File(templatePath));
            toGenerateThumbnailImage(templatePath, 0.2f);
            /*toGenerateThumbnailImage(templatePath, 0.3f);
            toGenerateThumbnailImage(templatePath, 0.4f);
            toGenerateThumbnailImage(templatePath, 0.5f);
            toGenerateThumbnailImage(templatePath, 0.1f);*/
        } catch (IOException e) {
            LOG.error("图片复制失败");
        }
        try {
            File file0 = new File(templatePath);
            SmbUtil.smbPut(SmbUtil.remoteUrl, file0, file0.getName());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            String newImgName = toGetImgName(templatePath, 0.2f);
            File fileThumb = new File(rootPath + "uploadImgFile/"+newImgName);
            SmbUtil.smbPut(SmbUtil.remoteUrl, fileThumb, fileThumb.getName());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        JSONObject url = new JSONObject();
        htglImgUrl = new JSONArray();
//        String toShowImgPath = rootPath + "uploadImgFile/" + toGetImgName(rootPath + "uploadImgFile/"+fileFileName, 0.2f);
        url.put("htglImgUrl", toGetImgName(rootPath + "uploadImgFile/"+fileFileName, 0.2f));
        htglImgUrl.add(url);
        return SUCCESS;

    }

    /**
     * 生成缩略图
     *
     * @param srcImgPath
     * @param scale
     */
    private void toGenerateThumbnailImage(String srcImgPath, Float scale) {
        if (srcImgPath == null || srcImgPath.isEmpty()) {
            return ;
        }
        String newImgName = toGetImgName(srcImgPath, scale);
        try {
            String rootPath = ServletActionContext.getServletContext().getRealPath("/");
            String newImgPath = rootPath + "uploadImgFile/";
            try {
                SmbFile sfile = new SmbFile(SmbUtil.remoteUrl);
                if (!sfile.exists()) {
                    sfile.mkdirs();
                }
            } catch (Exception e) {
            }
            Thumbnails.of(srcImgPath).scale(scale).toFile(newImgPath+newImgName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取指定比例的图片名称
     * @param srcImgPath
     * @param scale
     * @return
     */
    private String toGetImgName(String srcImgPath, Float scale) {
        if (srcImgPath == null || srcImgPath.isEmpty()) {
            return null;
        }
        File srcImgFile = new File(srcImgPath);
        Long imgWidth = 0L;
        Long imgHeight = 0L;
        Long imgLength = 0L;
        try {
            FileInputStream fis = new FileInputStream(srcImgFile);
            BufferedImage buff = ImageIO.read(srcImgFile);
//            BufferedImage buff1 = ImageIO.read(new SmbFileInputStream(SmbUtil.serverUrl + imageUrl));
            imgWidth = buff.getWidth() * 1L;
            imgHeight = buff.getHeight() * 1L;
            imgLength = srcImgFile.length();
            fis.close();
        } catch (FileNotFoundException e) {
            System.err.println("所给的图片文件" + srcImgFile.getPath() + "不存在!计算图片尺寸大小信息失败!");
        } catch (IOException e) {
            System.err.println("计算图片" + srcImgFile.getPath() + "尺寸大小信息失败!");
        }
        System.out.println("imgWidth = " + imgWidth + "  imgHeight = " + imgHeight + "  imgLength = " + imgLength);
        return toGetImgName(srcImgPath) + "_"
            + Integer.parseInt(new java.text.DecimalFormat("0").format(imgWidth * scale)) + "x"
            + Integer.parseInt(new java.text.DecimalFormat("0").format(imgHeight * scale))
            + srcImgPath.substring(srcImgPath.length() - 4, srcImgPath.length());
        // System.out.println("newImgName = " + newImgName);
    }

    /**
     * 获取图片名称
     *
     * @param imgPath
     * @return
     */
    private String toGetImgName(String imgPath) {
        String str[] = imgPath.split("[\\/]");
        if (str == null || str.length == 0) {
            return null;
        }
        String tmpStr = str[str.length - 1];
        return tmpStr.substring(0, tmpStr.length() - 4);
    }

    /**
     * 显示图片
     * @return
     * @throws UnsupportedEncodingException
     */
    public String showImg() throws UnsupportedEncodingException {

        if (imgPath != null &amp;&amp; !imgPath.isEmpty()) {
            try {
//                String rootPath = ServletActionContext.getServletContext().getRealPath("/");
               
                SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
                String timeStr = formatter.format(new Date());
                String imgSavePath = SmbUtil.remoteUrl + "/" + timeStr + "/" + imgPath;
               
                imageStream = SmbUtil.smbGet(imgSavePath);
                /*ByteArrayOutputStream bos = new ByteArrayOutputStream();
                InputStream input =
                    new BufferedInputStream(new FileInputStream(imgPath));
                byte[] bt = new byte[1024];
                while (input.read(bt) &gt; 0) {
                    bos.write(bt);
                }
                this.imageStream = new ByteArrayInputStream(bos.toByteArray());
                if (bos != null) {
                    bos.close();
                }
                if (input != null) {
                    input.close();
                }*/
            } catch (Exception e) {
                LOG.error("图片显示出错!");
            }
        }
        return "imgReadSuccess";
    }

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String getFileFileName() {
        return fileFileName;
    }

    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public JSONArray getHtglImgUrl() {
        return htglImgUrl;
    }

    public void setHtglImgUrl(JSONArray htglImgUrl) {
        this.htglImgUrl = htglImgUrl;
    }

    public String getImgPath() {
        return imgPath;
    }

    public void setImgPath(String imgPath) {
        this.imgPath = imgPath;
    }

    public ByteArrayInputStream getImageStream() {
        return imageStream;
    }

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

}


4,spring配置文件(application.xml)

&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemalocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
            http://www.springframework.org/schema/task  
            http://www.springframework.org/schema/task/spring-task-4.0.xsd
            "&gt;&lt;!-- &lt;bean id="propertyConfigurer"
        class="com.usi.wxcm.common.util.WxcmPropertyPlaceholderConfigurer"&gt;
        &lt;property name="locations"&gt;
            &lt;list&gt;
                &lt;value&gt;/WEB-INF/conf/DB.properties&lt;/value&gt;
                &lt;value&gt;/WEB-INF/conf/Mail.properties&lt;/value&gt;
            &lt;/list&gt;
        &lt;/property&gt;
    &lt;/bean&gt; --&gt;&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;&lt;property name="driverClass"&gt;&lt;value&gt;${driverClassName}&lt;/value&gt;&lt;/property&gt;&lt;property name="jdbcUrl"&gt;&lt;value&gt;${url}&lt;/value&gt;&lt;/property&gt;&lt;property name="user"&gt;&lt;value&gt;${username}&lt;/value&gt;&lt;/property&gt;&lt;property name="password"&gt;&lt;value&gt;${password}&lt;/value&gt;&lt;/property&gt;&lt;property name="minPoolSize" value="5"&gt;&lt;/property&gt;&lt;property name="maxPoolSize" value="15"&gt;&lt;/property&gt;&lt;property name="initialPoolSize" value="10"&gt;&lt;/property&gt;&lt;property name="maxIdleTime" value="60"&gt;&lt;/property&gt;&lt;property name="acquireIncrement" value="10"&gt;&lt;/property&gt;&lt;property name="maxStatements" value="0"&gt;&lt;/property&gt;&lt;property name="acquireRetryAttempts" value="5"&gt;&lt;/property&gt;&lt;property name="idleConnectionTestPeriod" value="60"&gt;&lt;/property&gt;&lt;property name="breakAfterAcquireFailure" value="false"&gt;&lt;/property&gt;&lt;property name="testConnectionOnCheckout" value="false"&gt;&lt;/property&gt;&lt;/bean&gt;&lt;!--
        &lt;property name="defaultAutoCommit" value="true"&gt;&lt;/property&gt;
        &lt;property name="validationQuery" value="select 1 from dual"&gt;&lt;/property&gt;
    --&gt;&lt;!-- Database initializer. If any of the script fails, the initialization
        stops. --&gt;&lt;!--As an alternative, for embedded databases see &lt;jdbc:embedded-database/&gt;.
        &lt;jdbc:initialize-database data-source="dataSource"&gt; &lt;jdbc:script location="${location}"
        encoding="UTF-8" /&gt; &lt;/jdbc:initialize-database&gt; --&gt;&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt;&lt;property name="dataSource" ref="dataSource"&gt;&lt;/property&gt;&lt;property name="hibernateProperties"&gt;&lt;props&gt;&lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.OracleDialect&lt;/prop&gt;&lt;!-- &lt;prop key="hibernate.default_schema"&gt;wxcm&lt;/prop&gt; --&gt;&lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;&lt;prop key="hibernate.autoReconnect"&gt;true&lt;/prop&gt;&lt;/props&gt;&lt;/property&gt;&lt;!-- &lt;property name="mappingResources"&gt;
            &lt;list&gt;
                &lt;value&gt;com/usi/wxcm/entity/User.hbm.xml &lt;/value&gt;
                &lt;value&gt;com/usi/wxcm/entity/DataDict.hbm.xml &lt;/value&gt;
                &lt;value&gt;com/usi/wxcm/entity/Role.hbm.xml&lt;/value&gt;
                &lt;value&gt;com/usi/wxcm/entity/ProjectCode.hbm.xml&lt;/value&gt;
            &lt;/list&gt;
        &lt;/property&gt; --&gt;&lt;/bean&gt;&lt;bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate"&gt;&lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt;&lt;/bean&gt;&lt;bean id="daoTemplate" abstract="true"&gt;&lt;property name="hibernateTemplate"&gt;&lt;ref bean="hibernateTemplate"&gt;&lt;/ref&gt;&lt;/property&gt;&lt;/bean&gt;&lt;!-- 定义事务管理器(声明式的事务) --&gt;&lt;bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"&gt;&lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt;&lt;/bean&gt;&lt;!-- use declarative transaction management --&gt;&lt;annotation-driven transaction-manager="transactionManager"&gt;&lt;/annotation-driven&gt;&lt;!-- 图片显示 --&gt;&lt;bean id="imageUpload" class="xtyl.action.ImageUpload" scope="prototype"&gt;&lt;/bean&gt;&lt;/beans&gt;


5,web.xml配置

&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&gt;&lt;context-param&gt;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;&lt;param-value&gt;/WEB-INF/applicationContext.xml&lt;/param-value&gt;&lt;/context-param&gt;&lt;filter&gt;&lt;filter-name&gt;struts2&lt;/filter-name&gt;&lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;&lt;/filter&gt;&lt;filter-mapping&gt;&lt;filter-name&gt;struts2&lt;/filter-name&gt;&lt;url-pattern&gt;*.action&lt;/url-pattern&gt;&lt;/filter-mapping&gt;&lt;listener&gt;&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;&lt;/listener&gt;&lt;welcome-file-list&gt;&lt;welcome-file&gt;imgTest.jsp&lt;/welcome-file&gt;&lt;/welcome-file-list&gt;&lt;session-config&gt;&lt;session-timeout&gt;30&lt;/session-timeout&gt;&lt;/session-config&gt;&lt;/web-app&gt;

6,需要相关的js插件
jquery-1.11.1.min.js 和 ajaxfileupload.js


7,自己写的相关图片上传js代码(imgUpload.js)

function changeUrl(){
    var path = $('#fileField1').val();
    //alert("path==="+path);
    var post = path.lastIndexOf("\\");
    //alert("post==="+post);
    $('#imageUrl').val(path.substring(post + 1, path.length));
    $('#imageUrlTmp').val(path.substring(post + 1, path.length));
    alert(path.substring(post + 1, path.length));
    var imgup = document.getElementById("imageUrl");
    if (imgup.value == "") {
        return;
    }
    // 判断是否是图片格式
    var imgname = imgup.value.substring(imgup.value.lastIndexOf("."), imgup.value.length);
    imgname = imgname.toLowerCase();
    /*if (!equalsIgnoreCase(imgname,'.jpg') &amp;&amp; !equalsIgnoreCase(imgname, '.gif')) {
        alert("请选择图片文件,谢谢!");
        imgup.focus();
        // 清空file里面的值
        $("#imageUrl").attr("value", "");
        $("#imageUrlTmp").attr("value", "");
    } else {
        // 显示图片
        $.ajaxFileUpload({
            url : 'imgUpLoad.action?'+new Date().getTime(),
            secureuri : false,
            fileElementId : 'fileField1',
            dataType : 'json',
            error:function(msg){
                alert(" image error occured!!!"+msg); 
             },
            success : function(result) {
                $("#imgsrc").attr("src", "showImg.action?"+new Date().getTime()+"&amp;imgPath="+result[0].htglImgUrl);
            }
        });
    }*/
// 显示图片
    $.ajaxFileUpload({
        url : 'imgUpLoad.action?'+new Date().getTime(),
        secureuri : false,
        fileElementId : 'fileField1',
        dataType : 'json',
        error:function (data, status, e)//服务器响应失败处理函数
        {
        alert("errrrrrrr");
        alert(data.msg);
            alert(status);
            alert(e);
        },
        success : function(result) {
            $("#imgsrc").attr("src", "showImg.action?"+new Date().getTime()+"&amp;imgPath="+result[0].htglImgUrl);
        }
    });
}

//忽略大小写比较字符串是否相等
function equalsIgnoreCase(str1, str2){
    if(str1.toUpperCase() == str2.toUpperCase()){
        return true;
    }
    return false;
}


8,pox.xml文件配置

&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;&lt;modelversion&gt;4.0.0&lt;/modelversion&gt;&lt;groupid&gt;com.XtylImage&lt;/groupid&gt;&lt;artifactid&gt;XtylImage&lt;/artifactid&gt;&lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;&lt;packaging&gt;war&lt;/packaging&gt;&lt;properties&gt;&lt;project.build.sourceencoding&gt;UTF-8&lt;/project.build.sourceencoding&gt;&lt;struts.version&gt;2.3.1.2&lt;/struts.version&gt;&lt;spring.version&gt;4.0.2.RELEASE&lt;/spring.version&gt;&lt;hibernate.version&gt;4.3.6.Final&lt;/hibernate.version&gt;&lt;/properties&gt;&lt;build&gt;&lt;resources&gt;&lt;resource&gt;&lt;directory&gt;src/main/resources&lt;/directory&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;/resource&gt;&lt;/resources&gt;&lt;pluginmanagement&gt;&lt;plugins&gt;&lt;plugin&gt;&lt;artifactid&gt;maven-compiler-plugin&lt;/artifactid&gt;&lt;version&gt;2.3.2&lt;/version&gt;&lt;inherited&gt;true&lt;/inherited&gt;&lt;configuration&gt;&lt;source&gt;1.7&lt;/source&gt;&lt;target&gt;1.7&lt;/target&gt;&lt;encoding&gt;UTF-8&lt;/encoding&gt;&lt;/configuration&gt;&lt;/plugin&gt;&lt;/plugins&gt;&lt;/pluginmanagement&gt;&lt;/build&gt;&lt;dependencymanagement&gt;&lt;dependencies&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-core&lt;/artifactid&gt;&lt;version&gt;${struts.version}&lt;/version&gt;&lt;exclusions&gt;&lt;exclusion&gt;&lt;groupid&gt;javassist&lt;/groupid&gt;&lt;artifactid&gt;javassist&lt;/artifactid&gt;&lt;/exclusion&gt;&lt;/exclusions&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-json-plugin&lt;/artifactid&gt;&lt;version&gt;${struts.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-spring-plugin&lt;/artifactid&gt;&lt;version&gt;${struts.version}&lt;/version&gt;&lt;exclusions&gt;&lt;exclusion&gt;&lt;artifactid&gt;spring-web&lt;/artifactid&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;/exclusion&gt;&lt;exclusion&gt;&lt;artifactid&gt;spring-beans&lt;/artifactid&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;/exclusion&gt;&lt;exclusion&gt;&lt;artifactid&gt;spring-context&lt;/artifactid&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;/exclusion&gt;&lt;exclusion&gt;&lt;artifactid&gt;spring-core&lt;/artifactid&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;/exclusion&gt;&lt;/exclusions&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-convention-plugin&lt;/artifactid&gt;&lt;version&gt;${struts.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;log4j&lt;/groupid&gt;&lt;artifactid&gt;log4j&lt;/artifactid&gt;&lt;version&gt;1.2.14&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.slf4j&lt;/groupid&gt;&lt;artifactid&gt;slf4j-api&lt;/artifactid&gt;&lt;version&gt;1.6.1&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.slf4j&lt;/groupid&gt;&lt;artifactid&gt;slf4j-log4j12&lt;/artifactid&gt;&lt;version&gt;1.6.0&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;junit&lt;/groupid&gt;&lt;artifactid&gt;junit&lt;/artifactid&gt;&lt;version&gt;4.10&lt;/version&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.hibernate&lt;/groupid&gt;&lt;artifactid&gt;hibernate-core&lt;/artifactid&gt;&lt;version&gt;${hibernate.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.hibernate&lt;/groupid&gt;&lt;artifactid&gt;hibernate-entitymanager&lt;/artifactid&gt;&lt;version&gt;${hibernate.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;net.sf.ehcache&lt;/groupid&gt;&lt;artifactid&gt;ehcache&lt;/artifactid&gt;&lt;version&gt;1.6.2&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-core&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-context&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-jdbc&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-orm&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-tx&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-web&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-test&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.hibernate&lt;/groupid&gt;&lt;artifactid&gt;hibernate-validator&lt;/artifactid&gt;&lt;version&gt;4.3.0.Final&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;commons-dbcp&lt;/groupid&gt;&lt;artifactid&gt;commons-dbcp&lt;/artifactid&gt;&lt;version&gt;1.4&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;commons-pool&lt;/groupid&gt;&lt;artifactid&gt;commons-pool&lt;/artifactid&gt;&lt;version&gt;1.5.6&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;commons-codec&lt;/groupid&gt;&lt;artifactid&gt;commons-codec&lt;/artifactid&gt;&lt;version&gt;1.5&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;net.sf.json-lib&lt;/groupid&gt;&lt;artifactid&gt;json-lib&lt;/artifactid&gt;&lt;version&gt;2.4&lt;/version&gt;&lt;classifier&gt;jdk15&lt;/classifier&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;javax.mail&lt;/groupid&gt;&lt;artifactid&gt;mail&lt;/artifactid&gt;&lt;version&gt;1.4&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;junit&lt;/groupid&gt;&lt;artifactid&gt;junit&lt;/artifactid&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;version&gt;4.4&lt;/version&gt;&lt;/dependency&gt;&lt;/dependencies&gt;&lt;/dependencymanagement&gt;&lt;dependencies&gt;&lt;dependency&gt;&lt;groupid&gt;javax.servlet&lt;/groupid&gt;&lt;artifactid&gt;servlet-api&lt;/artifactid&gt;&lt;version&gt;2.5&lt;/version&gt;&lt;scope&gt;provided&lt;/scope&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;javax.servlet&lt;/groupid&gt;&lt;artifactid&gt;jstl&lt;/artifactid&gt;&lt;version&gt;1.2&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;javax.servlet.jsp&lt;/groupid&gt;&lt;artifactid&gt;jsp-api&lt;/artifactid&gt;&lt;version&gt;2.2&lt;/version&gt;&lt;scope&gt;provided&lt;/scope&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-core&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-spring-plugin&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;&lt;artifactid&gt;struts2-json-plugin&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;log4j&lt;/groupid&gt;&lt;artifactid&gt;log4j&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.slf4j&lt;/groupid&gt;&lt;artifactid&gt;slf4j-api&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.slf4j&lt;/groupid&gt;&lt;artifactid&gt;slf4j-log4j12&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.hibernate&lt;/groupid&gt;&lt;artifactid&gt;hibernate-core&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.hibernate&lt;/groupid&gt;&lt;artifactid&gt;hibernate-entitymanager&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;net.sf.ehcache&lt;/groupid&gt;&lt;artifactid&gt;ehcache&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-core&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-context&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-jdbc&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-orm&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-tx&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-web&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.hibernate&lt;/groupid&gt;&lt;artifactid&gt;hibernate-validator&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;commons-dbcp&lt;/groupid&gt;&lt;artifactid&gt;commons-dbcp&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;com.oracle&lt;/groupid&gt;&lt;artifactid&gt;ojdbc6&lt;/artifactid&gt;&lt;version&gt;11.2.0.1&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;commons-codec&lt;/groupid&gt;&lt;artifactid&gt;commons-codec&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.poi&lt;/groupid&gt;&lt;artifactid&gt;poi&lt;/artifactid&gt;&lt;version&gt;3.9&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.poi&lt;/groupid&gt;&lt;artifactid&gt;poi-ooxml&lt;/artifactid&gt;&lt;version&gt;3.9&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.poi&lt;/groupid&gt;&lt;artifactid&gt;poi-scratchpad&lt;/artifactid&gt;&lt;version&gt;3.9&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.poi&lt;/groupid&gt;&lt;artifactid&gt;poi-ooxml-schemas&lt;/artifactid&gt;&lt;version&gt;3.9&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;net.sf.jxls&lt;/groupid&gt;&lt;artifactid&gt;jxls-core&lt;/artifactid&gt;&lt;version&gt;1.0.3&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;net.sf.jxls&lt;/groupid&gt;&lt;artifactid&gt;jxls-reader&lt;/artifactid&gt;&lt;version&gt;1.0.3&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;net.sf.json-lib&lt;/groupid&gt;&lt;artifactid&gt;json-lib&lt;/artifactid&gt;&lt;classifier&gt;jdk15&lt;/classifier&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.apache.commons&lt;/groupid&gt;&lt;artifactid&gt;commons-compress&lt;/artifactid&gt;&lt;version&gt;1.8.1&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;commons-validator&lt;/groupid&gt;&lt;artifactid&gt;commons-validator&lt;/artifactid&gt;&lt;version&gt;1.4.0&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;javax.mail&lt;/groupid&gt;&lt;artifactid&gt;mail&lt;/artifactid&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;jcifs&lt;/groupid&gt;&lt;artifactid&gt;jcifs&lt;/artifactid&gt;&lt;version&gt;1.3.17&lt;/version&gt;&lt;/dependency&gt;&lt;!-- 缩略图配置 begin --&gt;&lt;dependency&gt;&lt;groupid&gt;thumbnailator&lt;/groupid&gt;&lt;artifactid&gt;thumbnailator&lt;/artifactid&gt;&lt;version&gt;0.4.5&lt;/version&gt;&lt;/dependency&gt;&lt;!-- 缩略图配置 end --&gt;&lt;dependency&gt;&lt;groupid&gt;com.mchange&lt;/groupid&gt;&lt;artifactid&gt;c3p0&lt;/artifactid&gt;&lt;version&gt;0.9.5-pre10&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;junit&lt;/groupid&gt;&lt;artifactid&gt;junit&lt;/artifactid&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.quartz-scheduler&lt;/groupid&gt;&lt;artifactid&gt;quartz&lt;/artifactid&gt;&lt;version&gt;1.8.4&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-webmvc&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt;&lt;groupid&gt;org.springframework&lt;/groupid&gt;&lt;artifactid&gt;spring-context-support&lt;/artifactid&gt;&lt;version&gt;${spring.version}&lt;/version&gt;&lt;/dependency&gt;&lt;/dependencies&gt;&lt;/project&gt;

9,远程图片服务器相关参数文件(smbConfig.properties)

hostIP=172.17.2.23         #远程图片服务器ip
loginUser=wxcm             #登陆用户名
loginPwd=Overseas123       #登陆密码
imagePath=wxcm2/xtylTest/images/xtylImages     #存储图片文件夹


10,上传及预览用到的相关方法(SmbUtil.java)

package common.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SmbUtil {
    private static final Log LOG = LogFactory.getLog(SmbUtil.class);
    /**
     * 加载配置文件
     *
     * */
    public static String serverUrl;
    public static String remoteUrl;
    public static String imageZipRemoteUrl;
    public static String gysUploadImagRemoteUrl;
    public static String gysUploadFileRemoteUrl;
    public static String compareResultFileUrl;
    static {
        Properties prop = new Properties();
        InputStream in = SmbUtil.class.getResourceAsStream("/smbConfig.properties");
        try {
            prop.load(in);
            String hostIP = prop.getProperty("hostIP").trim();
            String loginUser = prop.getProperty("loginUser").trim();
            String loginPwd = prop.getProperty("loginPwd").trim();
            String imagePath = prop.getProperty("imagePath").trim();
            serverUrl = "smb://" + loginUser + ":" + loginPwd + "@" + hostIP;
            remoteUrl = "smb://" + loginUser + ":" + loginPwd + "@" + hostIP + "/" + imagePath;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 把文件上传到局域网共享文件下
     *
     * @param remoteUrl 共享电脑路径 如:smb//administrator:[email protected]/smb
     * @param localFile File对象
     * @param fileName 保存的文件名
     */
    public static String smbPut(String remoteUrl, File localFile, String fileName) throws IOException {
        if (localFile == null || !localFile.exists()) {
            return null;
        }
        InputStream in = null;
        OutputStream out = null;
        String remoteFileName = null;
        try {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
            String timeStr = formatter.format(new Date());
            /*
             * SmbFile sfile = new SmbFile(remoteUrl + File.separator + timeStr + File.separator); if (!sfile.exists()) { sfile.mkdirs(); }
             */
            String imgSavePath = SmbUtil.remoteUrl + "/" + timeStr + "/";
            try {
                SmbFile sfile = new SmbFile(imgSavePath);
                if (!sfile.exists()) {
                    sfile.mkdirs();
                }
            } catch (Exception e) {
            }
            SmbFile remoteFile = new SmbFile(remoteUrl + File.separator + timeStr + File.separator + fileName);
            in = new BufferedInputStream(new FileInputStream(localFile));
            out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
            byte[] buffer = new byte[1024];
            while ((in.read(buffer)) != -1) {
                out.write(buffer);
                buffer = new byte[1024];
            }
            remoteFileName = remoteFile.getName();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return remoteFileName;
    }

    /**
     * 把文件上传到局域网共享文件下(编辑书目时,如果图片被替换,则删除原图片保存新图片)
     *
     * @param remoteUrl 共享电脑路径 如:smb//administrator:[email protected]/smb
     * @param localFile File对象
     * @param fileName 保存的文件名
     * @param fileNameBeforeUpd 被编辑前保存的图片名称
     */
    /*
     * public static String smbPut(String remoteUrl, File localFile, String fileName, String fileNameBeforeUpd) throws IOException { // 删除原图片 SmbFile remoteFileDel = new SmbFile(remoteUrl + File.separator + fileNameBeforeUpd); // 路径为文件且不为空则进行删除 if (remoteFileDel.isFile() &amp;&amp; remoteFileDel.exists()) { remoteFileDel.delete(); }
     *
     * // 保存新图片 InputStream in = null; OutputStream out = null; String remoteFileName = null; try { // String fileName = localFile.getName(); SmbFile remoteFile = new SmbFile(remoteUrl + File.separator + fileName); in = new BufferedInputStream(new FileInputStream(localFile)); out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile)); byte[] buffer = new byte[1024]; while ((in.read(buffer)) != -1) { out.write(buffer); buffer = new byte[1024]; } remoteFileName = remoteFile.getName(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException e) { e.printStackTrace(); }
     *
     * } return remoteFileName; }
     */

    /**
     * 从文件服务器中读取图片文件输出到输出流中
     *
     * @param remoteUrl
     * @param out
     */
    public static void smbGet(String remoteUrl, OutputStream out) {
        InputStream in = null;
        try {
            SmbFile smbFile = new SmbFile(remoteUrl);
            in = new BufferedInputStream(new SmbFileInputStream(smbFile));
            byte[] buffer = new byte[1024];
            while ((in.read(buffer)) != -1) {
                out.write(buffer);
                buffer = new byte[1024];
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.flush();
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 根据图片名称查找图片
     *
     * @return
     * @throws BaseDBException
     */
    /*
     * public static ByteArrayInputStream smbGet(String imageName) throws BaseDBException { ByteArrayInputStream imageStream = null; if (imageName != null &amp;&amp; !imageName.isEmpty()) { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); InputStream input = new BufferedInputStream( new SmbFileInputStream(SmbUtil.remoteUrl + File.separator + imageName)); byte[] bt = new byte[1024]; while (input.read(bt) &gt; 0) { bos.write(bt); } imageStream = new ByteArrayInputStream(bos.toByteArray()); if (bos != null) { bos.close(); } if (input != null) { input.close(); } } catch (Exception e) { LOG.error("图片显示出错!"); e.printStackTrace(); } } return imageStream; }
     */

    /**
     * 根据图片服务器路径查找图片
     *
     * @return
     * @throws BaseDBException
     */
    public static ByteArrayInputStream smbGet(String imageUrl) throws Exception {
        ByteArrayInputStream imageStream = null;
        if (imageUrl != null &amp;&amp; !imageUrl.isEmpty()) {
            try {
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                SmbFile sfile = new SmbFile(imageUrl);
                if(imageUrl == null || imageUrl.isEmpty()){
                    return null;
                }
                String subImgUrl = imageUrl.substring(imageUrl.length()-3,imageUrl.length());
                /*if(!"jpg".equalsIgnoreCase(subImgUrl) &amp;&amp; !"gif".equalsIgnoreCase(subImgUrl)){
                    return null;
                }*/
                if (!sfile.exists()) {
                    return imageStream;
                }
                InputStream input = new BufferedInputStream(new SmbFileInputStream(imageUrl));
                byte[] bt = new byte[1024];
                while (input.read(bt) &gt; 0) {
                    bos.write(bt);
                }
                imageStream = new ByteArrayInputStream(bos.toByteArray());
                if (bos != null) {
                    bos.close();
                }
                if (input != null) {
                    input.close();
                }
            } catch (Exception e) {
                LOG.error("图片显示出错!");
                e.printStackTrace();
            }
        }
        return imageStream;
    }

    /**
     * 根据文件服务器路径查找文件
     *
     * @return
     * @throws BaseDBException
     */
    public static InputStream smbGetFile(String fileUrl) throws Exception {
    InputStream input = null;
        if (fileUrl != null &amp;&amp; !fileUrl.isEmpty()) {
            try {
                SmbFile sfile = new SmbFile(SmbUtil.gysUploadFileRemoteUrl +"/"+ fileUrl);
                if(fileUrl == null || fileUrl.isEmpty()){
                    return input;
                }
                if (!sfile.exists()) {
                    return input;
                }
                 input = new BufferedInputStream(new SmbFileInputStream(SmbUtil.gysUploadFileRemoteUrl+"/" + fileUrl));
             
            } catch (Exception e) {
                LOG.error("图片显示出错!");
                e.printStackTrace();
            }
        }
        return input;
    }
    /**
     * 根据key读取配置文件value值的方法
     *
     * @param key
     * @return
     */
    public static String readProperties(String key) {
        Properties prop = new Properties();
        InputStream in = SmbUtil.class.getResourceAsStream("/smbConfig.properties");
        String value = "";
        try {
            prop.load(in);
            value = prop.getProperty(key);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return value;
    }

    /**
     * 根据图片名称移动服务器上的图片
     *
     * @param key
     * @return
     */
    public static String movePicByName(String nowPicName, String newPicName, String supplierCode, Boolean flag) {
        try {
            File ff = new File(nowPicName);
            try {
                newPicName = newPicName + nowPicName.substring(nowPicName.lastIndexOf("."));
            } catch (Exception e) {
                return null;
            }
            SmbFile sf =
                new SmbFile(SmbUtil.gysUploadImagRemoteUrl + File.separator + supplierCode + File.separator
                    + nowPicName);
            if (sf.exists()) {
                if (flag) {
                    return "exists";
                }
                OutputStream o = new FileOutputStream(ff);
                SmbUtil.smbGet(SmbUtil.gysUploadImagRemoteUrl + File.separator + supplierCode + File.separator
                    + nowPicName, o);
                SmbUtil.smbPut(SmbUtil.remoteUrl, ff, newPicName);
                ff.delete();
                return "true";
            } else {
                return null;
            }
        } catch (SmbException e) {
            return null;
        } catch (IOException e) {
            return null;
        } catch (Exception e) {
            return null;
        }
    }
}


猜你喜欢

转载自hefeijack.iteye.com/blog/2174922
my