日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Android FTP客户端使用,快速上传文件

發(fā)布時間:2024/1/1 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android FTP客户端使用,快速上传文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.ftp依賴

看Android版本使用

compile 'commons-net:commons-net:3.5' implementation 'commons-net:commons-net:3.5'

2.廢話不多說,直接先上寫的一個工具類

public class FTPUtils {private static final String TAG = "FTPClientFunctions";private FTPClient ftpClient = null; // FTP客戶端SharedPreferences preferences = XLApplication.getContext().getSharedPreferences("setting", Context.MODE_PRIVATE);private String ip;private String port;private String username;private String password;/*** 連接到FTP服務(wù)器** @return 是否連接成功*/public boolean ftpConnect(Context context) {try {username = "anonymous";password = "https://blog.csdn.net";ip = preferences.getString("ftp_ip", XLApplication.getContext().getString(R.string.access_ip));port = preferences.getString("ftp_port", XLApplication.getContext().getString(R.string.ftp_port));ftpClient = new FTPClient();Log.e(TAG, "connecting to the ftp server " + ip + " :" + port);ftpClient.connect(ip, Integer.parseInt(port));// 根據(jù)返回的狀態(tài)碼,判斷鏈接是否建立成功if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {Log.e(TAG, "login to the ftp server");boolean status = ftpClient.login(username, password);/** 設(shè)置文件傳輸模式* 避免一些可能會出現(xiàn)的問題,在這里必須要設(shè)定文件的傳輸格式。* 在這里我們使用BINARY_FILE_TYPE來傳輸文本、圖像和壓縮文件。*/ftpClient.setFileType(FTP.BINARY_FILE_TYPE);ftpClient.enterLocalPassiveMode();return status;}} catch (Exception e) {e.printStackTrace();Log.e(TAG, "Error: could not connect to host " + ip);//此處應(yīng)有提示//ToastUtil.show((PostAlarmActivity)context,"FTP服務(wù)器連接失敗");}return false;}/*** 斷開ftp服務(wù)器連接** @return 斷開結(jié)果*/public boolean ftpDisconnect() {// 判斷空指針if (ftpClient == null) {return true;}// 斷開ftp服務(wù)器連接try {ftpClient.logout();ftpClient.disconnect();return true;} catch (Exception e) {Log.d(TAG, "Error occurred while disconnecting from ftp server.");}return false;}/*** ftp 文件上傳** @param srcFilePath 源文件目錄* @param desFileName 文件名稱* @return 文件上傳結(jié)果*/public boolean ftpUpload(String srcFilePath, String desFileName) {boolean status = false;try {FileInputStream srcFileStream = new FileInputStream(srcFilePath);status = ftpClient.storeFile(desFileName, srcFileStream);srcFileStream.close();return status;} catch (Exception e) {e.printStackTrace();Log.d(TAG, "upload failed: " + e.getLocalizedMessage());}return status;} }

經(jīng)過自己的多次調(diào)試終于調(diào)通了,那么我在這里主要給大家說幾個坑吧,可能大家在調(diào)試也會出現(xiàn)的情況

1.IP和端口就不說了,根據(jù)自己的工程進行修改就行了,那么重點就要說下這個用戶名和密碼的問題了,剛開是和FTP搭建的人員調(diào)試的時候,說的是沒有用戶名和密碼,所以開始我就沒有傳這兩個字段,但是老是調(diào)試不通,通過查資料才確定ftp是有默認(rèn)用戶名的anonymous,所以在沒有用戶名和密碼的時候請用默認(rèn)用戶名,然后就是密碼也必須隨便填一個,不能傳空字符,不然可能還是不會通。

3.調(diào)用代碼

new Thread(new Runnable() {@Overridepublic void run() {// TODO 可以首先去判斷一下網(wǎng)絡(luò)FTPUtils ftpClient = new FTPUtils();boolean connectResult = ftpClient.ftpConnect(PostAlarmActivity.this);if (connectResult) {boolean uploadResult = ftpClient.ftpUpload(url, VIDEO_UPLOAD_FILE + name);if (uploadResult) {Log.w(TAG, "上傳成功");boolean disConnectResult = ftpClient.ftpDisconnect();if (disConnectResult) {Log.e(TAG, "關(guān)閉ftp連接成功");runOnUiThread(new Runnable() {@Overridepublic void run() {submit(url, name, 1);}});} else {Log.e(TAG, "關(guān)閉ftp連接失敗");}} else {Log.w(TAG, "上傳失敗");runOnUiThread(new Runnable() {@Overridepublic void run() {ToastUtil.show(PostAlarmActivity.this, "視頻上傳失敗");}});}} else {Log.w(TAG, "連接ftp服務(wù)器失敗");}}}).start(); public static final String VIDEO_UPLOAD_FILE = "./";

這里的url就是文件源文件路勁,然后這個調(diào)用這里也有一個坑,就是這個文件名稱是指你要上傳的位置,這里前面必須指定上傳的文件目錄加上你要保存的文件名,"./"表示根目錄,name是文件名,如果要上傳指定目錄,只要確保FTP服務(wù)器有就OK了。

總結(jié)

以上是生活随笔為你收集整理的Android FTP客户端使用,快速上传文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。