Android通过FTP上传文件

Android通过FTP上传文件

最近开发的项目中需要用FTP上传文件,所以写篇博客作记录。

首先需要导入两个jar包 关联 

commons-net-3.3.jar   
lite-orm-1.9.2.jar


上传图片的核心代码
上传图片的核心代码
/**
 * FTP上传图片
 *
 * @param bitmap
 */
private void uploadBitmap(final Bitmap bitmap) {
    new Thread() {
        @Override
        public void run() {
            super.run();
            try {
                String resultCode = ftpUpload("ip地址,例如192.168.0.1", "端口号,FTP默认端口号是21", "FTP用户名,问架服务器的后台人员要用户名和密码", "密码", bitmap, "IMAGE" + DataFormatUtils.getDateFormat() + ".jpg");
                if (null != resultCode && resultCode.equals("1")) {
                    Log.i(BaseConfig.TAG, "上传图片成功");
                }
                if (null != resultCode && resultCode.equals("0")) {
                    Log.i(BaseConfig.TAG, "登录失败");
                }
                if (null != resultCode && resultCode.equals("-1")) {
                    Log.i(BaseConfig.TAG, "FTP客户端出错!");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }.start();
}
 /**
     * ftp上传
     *
     * @param url      ftp地址
     * @param port     ftp连接端口号
     * @param username 登录用户名
     * @param password 登录密码
     * @param fileName 本地文件名
     * @return
     */
    public static String ftpUpload(String url, String port, String username, String password, Bitmap bitmap, String fileName) {
        //bitmap转换成InputStream
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
        InputStream fis = new ByteArrayInputStream(baos.toByteArray());


        //创建FTPClient对象
        FTPClient ftpClient = new FTPClient();
        String returnMessage = "0";
        try {
            //连接FTP服务器
            ftpClient.connect(url, Integer.parseInt(port));
            boolean loginResult = ftpClient.login(username, password);
            int returnCode = ftpClient.getReplyCode();
            if (loginResult && FTPReply.isPositiveCompletion(returnCode)) {// 如果登录成功
                Log.i(BaseConfig.TAG, "登录成功");
                /*boolean status = ftpClient.changeWorkingDirectory("/pub");
                if (status) {
                    Log.i(BaseConfig.TAG, "更改文件目录成功");
                } else {
                    Log.i(BaseConfig.TAG, "更改文件目录失败");
                }*/
                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                ftpClient.setBufferSize(1024);
                ftpClient.setControlEncoding("UTF-8");
                ftpClient.enterLocalPassiveMode();
                ftpClient.storeFile(fileName, fis);
                returnMessage = "1";   //上传成功
            } else {
                // 如果登录失败
                returnMessage = "0";
            }

        } catch (Exception e) {
            e.printStackTrace();
//		     throw new RuntimeException("FTP客户端出错!", e);
            returnMessage = "-1";
        } finally {
            //IOUtils.closeQuietly(fis);
            try {
                ftpClient.disconnect();
            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException("关闭FTP连接发生异常!", e);
            }
        }
        return returnMessage;
    }

jar下载链接

https://download.csdn.net/download/sfy666666/11142746

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值