根据图片在ftp路径获取InputStream流

来源:互联网 发布:md5摘要算法 编辑:程序博客网 时间:2024/06/07 02:15
//台标
                           String logoUrl ="ftp://ftpuser:ftpuser@192.168.3.26:21/cjj/123/5.png";
                           InputStream ftpPictureStream = MethodUtil.getFtpPictureStream(logoUrl);
                           if(ftpPictureStream!=null){
                               //复制流
                               ByteArrayOutputStream baos = new ByteArrayOutputStream();

                               byte[] buffer = new byte[1024];
                               int len;
                               while ((len = ftpPictureStream.read(buffer)) > -1 ) {
                                   baos.write(buffer, 0, len);
                               }
                               baos.flush();

                               // 打开一个新的输入流
                               InputStream ftpPictureStream1 = new ByteArrayInputStream(baos.toByteArray());
                               InputStream ftpPictureStream2 = new ByteArrayInputStream(baos.toByteArray());
                               BufferedImage src = javax.imageio.ImageIO.read(ftpPictureStream1);
                               int width = src.getWidth();
                               int height = src.getHeight();
                               UploadPic  uploadPic = new UploadPic();
                               // 获取配置文件信息
                              // String url = ConfigUtil.getConfig("imageGroup.url");
                               String imageUploadurl = ConfigUtil.getConfig("imageUpload.url");
                               String sysKey = ConfigUtil.getConfig("imageUpload.sysKey");
                               String code = ConfigUtil.getConfig("imageUpload.code");
                               String newFileName= uploadPic.upload(imageUploadurl,code, sysKey, ftpPictureStream2,logoUrl.substring(logoUrl.lastIndexOf("/")+1));

                           }

//MethodUtil.getFtpPictureStream(logoUrl)方法

public static InputStream getFtpPictureStream(String contentMngXMLURL)
            throws Exception {
       // String contentMngXMLURL="ftp://ftpuser:ftpuser@192.168.3.26:21/logo/123/1.png";
        String startSub = contentMngXMLURL.substring(0,
                contentMngXMLURL.indexOf("@"));
        String endSub = contentMngXMLURL.substring(contentMngXMLURL
                .indexOf("@") + 1);
        String userPass = startSub.substring(startSub.lastIndexOf("/") + 1);
        String[] up = userPass.split(":");
        String ipAndPort = endSub.substring(0, endSub.indexOf("/"));
        String pathName = endSub.substring(endSub.indexOf("/"));
        String path = pathName.substring(0,pathName.lastIndexOf("/"));
        String fileName = endSub.substring(endSub.lastIndexOf("/") + 1);
        String port;
        String ip;

        if (ipAndPort.contains(":")) {
            ip = ipAndPort.substring(0, ipAndPort.indexOf(":"));
            port = ipAndPort.substring(ipAndPort.indexOf(":") + 1);
        } else {
            ip = ipAndPort;
            port = "21";
        }

        ftpclient = new FTPClient();
        ftpclient.setControlEncoding("UTF-8");
        ftpclient.connect(ip, Integer.valueOf(port));
        if (FTPReply.isPositiveCompletion(ftpclient.getReplyCode())) {
            ftpclient.login(up[0], up[1]);
        } else {
            ftpclient.disconnect();
        }
        ftpclient.setFileType(ftpclient.BINARY_FILE_TYPE);
        if (StringUtil.isNotEmpty(path)) {
            if (!ftpclient.changeWorkingDirectory(path)) {
                ftpclient=null;
//                Exception e = new Exception("海报路径不存在");
//                throw e;
            }
        }
        if (ftpclient == null) {
            return null;
        }
        InputStream retrieveFileStream = ftpclient.retrieveFileStream(fileName);
        // 得到目录的相应文件列表
        try {
            if (ftpclient.isConnected()) {
                ftpclient.disconnect();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (ftpclient.isConnected()) {
                    ftpclient.disconnect();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return retrieveFileStream;
    }



阅读全文
1 0
原创粉丝点击