`
dtt3401885
  • 浏览: 16924 次
文章分类
社区版块
存档分类
最新评论

java ftp 上传文件

阅读更多
package com.detao.dtma.filter;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;

import com.detao.dtma.utils.Configuration;

public class FtpFile {
	  private static Logger logger = Logger.getLogger(FtpFile.class); 
	  String ftpinfor = Configuration.getProperty("ftp.file.information");
	  String[] ftpin=ftpinfor.split("/");
	  String filetype="picture,files,video,others";
	  String[] dire=filetype.split(",");
	  String picturetype = Configuration.getProperty("ftp.file.picturetype");
	  String filestype = Configuration.getProperty("ftp.file.filestype");
	  String videotype = Configuration.getProperty("ftp.file.videotype");
	/** 
     * 获取FTPClient对象 
     * @param ftpHost FTP主机服务器 
     * @param ftpPassword FTP 登录密码 
     * @param ftpUserName FTP登录用户名 
     * @param ftpPort FTP端口 默认为21 
     * @return 
     */  
    public static FTPClient getFTPClient(String ftpHost, String ftpPassword,  
            String ftpUserName, int ftpPort) {  
        FTPClient ftpClient = null;  
        try {  
            ftpClient = new FTPClient();  
            ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器  
            ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器  
            if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {  
                logger.info("未连接到FTP,用户名或密码错误。");  
                ftpClient.disconnect();  
            } else {  
                logger.info("FTP连接成功。");  
            }  
        } catch (SocketException e) {  
            e.printStackTrace();  
            logger.info("FTP的IP地址可能错误,请正确配置。");  
        } catch (IOException e) {  
            e.printStackTrace();  
            logger.info("FTP的端口错误,请正确配置。");  
        }  
        return ftpClient;  
    } 
    

    /** 
     * 本地上传文件到FTP服务器 
     *  
     * @param ftpPath 
     *            远程文件路径FTP 
     * @return 
     * @throws IOException 
     */  


    public String upload(String filePath,String filename) {  
        FTPClient ftpClient = null;  
        String dirurl="";
        try {  
        	
            ftpClient = getFTPClient(ftpin[0], ftpin[1],ftpin[2], Integer.parseInt(ftpin[3]));  
            // 设置PassiveMode传输  
            ftpClient.enterLocalPassiveMode();  
            // 设置以二进制流的方式传输  
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); 
            ftpClient.makeDirectory(ftpin[4]); //新建OA文件夹
            ftpClient.changeWorkingDirectory(ftpin[4]);//路径转移OA文件夹
            String[] filtype=filename.split("\\.");
            System.out.println(filtype.length);
            dirurl+="/"+ftpin[4];
            if(filtype.length>1){
            int ff= filtype.length;
            if(picturetype.contains(filtype[(ff-1)])){
            	 ftpClient.makeDirectory(dire[0]);
            	 ftpClient.changeWorkingDirectory(dire[0]);
            	 dirurl+="/"+dire[0];
            }else if(filestype.contains(filtype[(ff-1)])){
            	 ftpClient.makeDirectory(dire[1]);
            	 ftpClient.changeWorkingDirectory(dire[1]);
            	 dirurl+="/"+dire[1];
            }else if(videotype.contains(filtype[(ff-1)])){
            	 ftpClient.makeDirectory(dire[2]);
            	 ftpClient.changeWorkingDirectory(dire[2]);
            	 dirurl+="/"+dire[2];
            }else{
            	 ftpClient.makeDirectory(dire[3]);
            	 ftpClient.changeWorkingDirectory(dire[3]);
            	 dirurl+="/"+dire[3];
            }
                dirurl+="/"+filename;
                File f = new File(filePath);  
                InputStream in = new FileInputStream(f);  
                ftpClient.storeFile(filename, in);  
                in.close();  
                f.delete();  
             	
            }else{
            	 dirurl="create error";
            }
        } catch (Exception e) {  
            e.printStackTrace();  
            dirurl="create error";
        }finally{  
            try {  
                ftpClient.disconnect();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }
        return dirurl;
    }

  
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics