導航:首頁 > 操作系統 > androidstorefile

androidstorefile

發布時間:2023-03-29 23:16:54

android中如何上傳圖片到FTP伺服器

在安卓環境下可以使用,在java環境下也可以使用,已經在Java環境下實現了功能,然後移植到了安卓手機上,其它都是一樣的。

[java] view plain
package com.photo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

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

public class FileTool {

/**
* Description: 向FTP伺服器上傳文件
*
* @param url
* FTP伺服器hostname
* @param port
* FTP伺服器埠
* @param username
* FTP登錄賬號
* @param password
* FTP登錄密碼
* @param path
* FTP伺服器保存目錄,是linux下的目錄形式,如/photo/
* @param filename
* 上傳到FTP伺服器上的文件名,是自己定義的名字,
* @param input
* 輸入流
* @return 成功返回true,否則返回false
*/
public static boolean uploadFile(String url, int port, String username,
String password, String path, String filename, InputStream input) {
boolean success = false;
FTPClient ftp = new FTPClient();

try {
int reply;
ftp.connect(url, port);// 連接FTP伺服器
// 如果採用默認埠,可以使用ftp.connect(url)的方式直接連接FTP伺服器
ftp.login(username, password);//登錄
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(path);
ftp.storeFile(filename, input);

input.close();
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

// 測試
public static void main(String[] args) {

FileInputStream in = null ;
File dir = new File("G://pathnew");
File files[] = dir.listFiles();
if(dir.isDirectory()) {
for(int i=0;i<files.length;i++) {
try {
in = new FileInputStream(files[i]);
boolean flag = uploadFile("17.8.119.77", 21, "android", "android",
"/photo/", "412424123412341234_20130715120334_" + i + ".jpg", in);
System.out.println(flag);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

}
}

以上為java代碼,下面是android代碼。

[java] view plain
package com.ftp;

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

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

new uploadThread().start();
}

class uploadThread extends Thread {
@Override
public void run() {
FileInputStream in = null ;
File dir = new File("/mnt/sdcard/DCIM/Camera/test/");
File files[] = dir.listFiles();
if(dir.isDirectory()) {
for(int i=0;i<files.length;i++) {
try {
in = new FileInputStream(files[i]);
boolean flag = FileTool.uploadFile("17.8.119.77", 21, "android", "android",
"/", "412424123412341234_20130715120334_" + i + ".jpg", in);
System.out.println(flag);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
}
}

⑵ Android開發Tinker熱更新的問題

通過閱讀官方的技術文檔,始終沒有發現有對這個情況的相關配置項,所以只能從別處下手,最後發現,通過在 app mole 的 「build.gradle」 文件中,注釋掉依賴插件腳本,最終解決掉這個問題:

說兩句:
目前運行調試一切正常,不過要始終留意後續是否會出現問題;重要的一點是,當要打包新版本時,一定要解開這個注釋。

2、can』t the get signConfig for this build

問題:
執行 buildTinkerPatchRelease 打 Release 版本補丁包時報以下錯誤:

Error:Execution failed for task ':app:tinkerPatchRelease'.
> can't the get signConfig for this build
1
2

解決:

android {
...
// 簽名配置【buildTypes中調用了signingConfigs,則signingConfigs{}要置於buildTypes{}前面】
signingConfigs {
release {
try {
storeFile file("MyProject.jks")
storePassword "111111"
keyAlias "zhangzeqiao"
keyPassword "111111"
} catch (ex) {
throw new InvalidUserDataException(ex.toString())
}
}
}

buildTypes {
release {
...
signingConfig signingConfigs.release
}
debug {
...
signingConfig signingConfigs.release
}
}
...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
其中要特別注意,signingConfigs{} 方法體要置於 buildTypes{} 方法體前面,不然會報以下錯誤:

⑶ AndroidStudio4.0.1版本無法快速新建Activity解決辦法

AndroidStudio4.0.1版本,新建Activity的時候,點擊finish之後新建失敗沒有產生對應的Java及xml文件且沒有任何提示,如下圖方式新建:

問題原因:signingConfigs的寫法跟之前的版本有些不同。

解決辦法:改成新版本的方式即可恢復新建Activity的功能。

注意事項:

mole下的 build.gradle文件,如果你需要配置signingConfigs模塊,那麼有兩個規則需要遵守

1,signingConfigs模塊的配置需要寫在buildTypes模塊之前

android {

    ……

    signingConfigs {

    ...…

     }

    buildTypes {

         release {

           ……

          }

          debug {

           ……

          }

     }

}

如果不按順序寫,會報 Could not get unknown property 'xxxxxxx' for SigningConfig container of type org.gradle.api.internal.的錯誤

2,signingConfigs模塊裡面不能出現debug之類的亂念關鍵字

      我之前的寫法如下所示(4.0版本不適用):

      //錯誤寫法

          signingConfigs {

                   debug {

                           storeFile file('key地址')

                           storePassword "密碼"

                            keyAlias "Alias名稱"

                            keyPassword "密碼"

               }

         }

           buildTypes {

                 debug {

                          ……

                         signingConfig signingConfigs.debug

           }

   }

//正確寫法,把signingConfigs模塊里的 「debug 」改成其他名字,例如改成test

signingConfigs {

              test{

                  storeFile file('key地址'滑爛)

                  storePassword "密碼"

                  keyAlias "Alias名稱"

                  keyPassword "密碼"

 嘩讓困            }

}

buildTypes {

           debug {

                        ……

                        signingConfig signingConfigs.test

            }

}

修改完後,把項目里的build文件夾裡面的output.json文件刪掉,再次新建,新建成功

⑷ Android Studio 生成正式簽名apk(app-release.apk)的兩種方式

方式一:使用Android Studio生成

1.點擊Build->Generate,首次點擊可能會提示輸入操作系統密碼

2.彈出如下對話框,因為我們還沒有生成過keystore ,所以點擊Create new,新建keystore

3.填寫相關內容

Key store path 是 keystore的存放路徑
Alias 是別名,填寫APP名稱即可,別的名稱你記得住的也行

validity 是有效期限。
兩種密碼結合上一幅圖看

填寫完成後點擊ok
(記得備份,因為以後這個apk的新版本都是用這個keystore了)

4.彈出此窗口,自動填充好了這密碼和別名,Next

如果點擊了Remember passwords 可能需要輸入操作系統密碼。

5.填寫路徑,選擇簽名版本,點擊Finish

V2是Android 7.0出現的更安全更快速的簽名方式。

點擊ShowInExplore,或者自己打開路徑,就可以看到app-release.apk了
方式二:使用Gradle 生成

1.編輯 根目錄文件 gradle.properties

添加如下內容:

KEY_PATH=D:/Android/test1.jks
KEY_PASS=12345678
ALIAS_NAME=test
ALIAS_PASS=12345678
2.編輯 app/build.gradle 讀取指定的路徑密碼
在android 閉包中添加signingConfigs閉包:

android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.test"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
config {
storeFile file(KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}

在buildTypes release 閉包中添加 signingConfig signingConfigs.config 應用前面的簽名配置(ps:signingConfigs閉包必須在buildTypes閉包前)

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}

3.點擊右側工具欄的Gradle->項目名->:app->Tasks->build

assemble 用於生成測試版和正式版的apk

assembleDebug 用於生成測試版apk

閱讀全文

與androidstorefile相關的資料

熱點內容
安卓手機微信發不出視頻怎麼弄 瀏覽:229
壓縮機專用工具 瀏覽:575
qtcreator可以編譯cp嗎 瀏覽:405
小項目是雲伺服器還是本地好 瀏覽:14
墨痕齋是什麼游戲的伺服器 瀏覽:942
word文件如何壓縮大小 瀏覽:279
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787