FTP上传文件

    FtpUpload t = new FtpUpload();
            System.out.println("new FtpUpload----->");
            try
            {
                // 连接ftp服务器
                t.connect("", "1.1.1.1", 21, "username", "123");
                System.out.println("connect------------>>>");
                // 将服务器本地的文件上传到ftp服务器
                File file = new File(realFilePath);
                System.out.println("upload--before");
                t.upload(file);
                System.out.println("upload--after");
                // 删除本地保存的文件
                DelFolder.delFolder(realFilePath);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }

import java.io.File;
import java.io.FileInputStream;

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

public class FtpUpload
{
    public FTPClient ftp;

    /**  
     *   
     * @param path 上传到ftp服务器哪个路径下     
     * @param addr 地址  
     * @param port 端口号  
     * @param username 用户名  
     * @param password 密码  
     * @return  
     * @throws Exception  
     */
    public boolean connect(String path, String addr, int port, String username, String password) throws Exception
    {
        boolean result = false;
        ftp = new FTPClient();
        int reply;
        ftp.connect(addr, port);
        ftp.login(username, password);
        ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
        reply = ftp.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply))
        {
            ftp.disconnect();
            return result;
        }
        ftp.changeWorkingDirectory(path);
        result = true;
        return result;
    }

    /**  
     *   
     * @param file 上传的文件或文件夹  
     * @throws Exception  
     */
    public void upload(File file) throws Exception
    {
        if (file.isDirectory())
        {
            System.out.println("file  isDirectory");
            ftp.makeDirectory(file.getName());
            ftp.changeWorkingDirectory(file.getName());
            String[] files = file.list();
            for (int i = 0; i < files.length; i++)
            {
                File file1 = new File(file.getPath() + "\\" + files[i]);
                if (file1.isDirectory())
                {
                    upload(file1);
                    ftp.changeToParentDirectory();
                }
                else
                {
                    File file2 = new File(file.getPath() + "\\" + files[i]);
                    FileInputStream input = new FileInputStream(file2);
                    ftp.storeFile(file2.getName(), input);
                    input.close();
                }
            }
        }
        else
        {
            System.out.println("file not isDirectory");
            System.out.println("file.getPath()----->" + file.getPath());
            File file2 = new File(file.getPath());
            FileInputStream input = new FileInputStream(file2);
            System.out.println("ftp.storeFile before");
            ftp.enterLocalPassiveMode();
            ftp.storeFile(new String(file2.getName().getBytes("UTF-8"), "iso-8859-1"), input);
            System.out.println("ftp.storeFile after");
            input.close();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值