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下载链接