java实现ftp上传文件到服务器

1、引入依赖

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.6</version>
</dependency>

2、代码

 /**
     *ftp上传单个文件
     * @param hostname 服务器地址
     * @param port 端口号
     * @param username 用户名
     * @param password 密码
     * @param uploadFilePath 上传文件路径(包括文件名)
     * @param destPath ftp上传目录
     */
    public void ftpUploadFile(String hostname,int port,String username,String password,String uploadFilePath,String destPath){
        FTPClient ftp = new FTPClient();
        System.out.println("准备连接到ftp");
        try {
            //连接
            ftp.connect(hostname, port);

            //登录
            boolean loginS = ftp.login(username, password);
            if (!loginS) {
                System.out.println("ftp登录失败,用户名或密码错误");
                return;
            }else{
                System.out.println("ftp登录成功");
            }

            // 获取本地文件并上传
            String file = uploadFilePath;
            FileInputStream input = new FileInputStream(file);
            ftp.changeWorkingDirectory(destPath);//跳转目录
            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);//必须要设置以二进制的方式传输文件
            ftp.enterLocalPassiveMode();//被动模式
            file = new String(file.getBytes("GBK"),"iso-8859-1");

            if (!ftp.storeFile(new File(file).getName(), input)) {
                System.out.println("失败,服务器返回:" + ftp.getReplyString());//获取上传失败的原因
            } else {
                System.out.println("文件:" + new File(file).getName() + " 上传成功");
            }
            input.close();
            ftp.logout();
        } catch (IOException e) {
            System.out.println("ftp连接失败");
        }
    }

你可能感兴趣的:(笔记,java,服务器,开发语言)