公司要把工程拆分为两个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("================远程取出异常了");
}
}
}