java FTP 远端 分布式

来源:互联网 发布:淘宝首页设计理念讲解 编辑:程序博客网 时间:2024/04/28 06:41

 公司要把工程拆分为两个IP域名,但是数据要同步,这个简单啊,一个数据库就好了,但是难的是图片和XML也要同步啊,本来我想建个图片服务器,但是不让啊,而且还要求图片本地有就取本地,本地没有取远端啊,XML也一样啊,而且还要上传啊,把我逼了两天后有了下面的代码啊,大家一起分享啊,谢谢

用的是JBOSS啊

package com.jspsmart.upload;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTPClient;

import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;

public class FtpUpload {

 //上传
 public void FileUp(String path){
  FTPClient ftpClient = new FTPClient();
        FileInputStream fis = null;
        try { 
                          File   f   =   new   File("."); 
              String cc=f.getCanonicalPath().charAt(0)+"://jboss-4.2.3.GA//server//default//deploy//ChinaGate.war"+path;
        File file=new File(cc);
        fis=new FileInputStream(file);
              ftpClient.connect("192.168.0.1");
              ftpClient.login("max", "max");
                 ftpClient.setBufferSize(1024);
                 ftpClient.setControlEncoding("UTF-8");
                 //设置文件类型(二进制)
                 ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
                 ftpClient.storeFile(path, fis);
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("FTP客户端出错!", e);
        } finally {
            IOUtils.closeQuietly(fis);
            try {
                ftpClient.disconnect();
            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException("关闭FTP连接发生异常!", e);
            }
        }  
 }
 
 
 
 public static void main(String[] arg0) {
  FtpUpload FtpUpload=new FtpUpload();
  FtpUpload.FileLoad("/images/companylogo/1221013845984.gif");
 }
 //下载
 public String FileLoad(String path){
  String aaa="/images"+path;
  if(path!=null&&path.length()>1){
   FtpUpload FtpUpload=new FtpUpload();
   boolean b=FtpUpload.FileLoadA(aaa);
        if(!b){
         ddd(aaa);
        }
  }
  return path;
 }
 public boolean FileLoadA(String path){
  boolean a=true;
  try
        {
   File   f   =   new   File(".");  
   String cc=f.getCanonicalPath().charAt(0)+"://jboss-4.2.3.GA//server//default//deploy//China.war"+path;
   File file=new File(cc);
   
   if(!file.exists()){
    a=false; 
    
   }else{
    if(file.length()<1){
     a=false; 
     file.delete();
    }else{
     System.out.println("================本地正常取");
    }
    
   }
   
   
        }
        catch (Exception ex)
        {
         ex.printStackTrace();
        }finally{
         return a;
         
        }


  
 }
 
 public void ddd(String path){
  System.out.println("================远程取");
  File fi=null;
     try
        {
            FtpClient fc=new FtpClient("192.168.0.1");
            fc.login("maxtie","maxtie");
            fc.binary();
            int ch;
            File   f   =   new   File(".");  
   
            String cc=f.getCanonicalPath().charAt(0)+"://jboss-4.2.3.GA//server//default//deploy//China.war"+path;
            fi = new File(cc);
           
            RandomAccessFile getFile = new RandomAccessFile(fi,"rw");
            getFile.seek(0);
            TelnetInputStream fget=fc.get(path);
            DataInputStream puts = new DataInputStream(fget);
            while ((ch = puts.read()) >= 0) {
                getFile.write(ch);
            }
            fget.close();
            getFile.close();
            fc.closeServer();
        }
        catch (IOException e)
        {
         
         System.out.println("================远程取出异常了");
        }
 }
 
 }