【问题标题】:Failed To Upload File Using Apache FTPclient on Android在 Android 上使用 Apache FTPclient 上传文件失败
【发布时间】:2016-12-19 03:45:38
【问题描述】:

我想上传一个文本文件,我使用的是org.apache.commons.net.ftp.FTPclient。代码每次都失败。

FTPClient client = new FTPClient();
FileInputStream fis = null;

try {
    client.connect("192.168.43.164",21);
    client.login("android", "android");
    client.setFileType(FTP.BINARY_FILE_TYPE);
    client.setFileTransferMode(FTP.BINARY_FILE_TYPE);
    String filename = "/sdcard/m.txt";
    fis = new FileInputStream(filename);
    client.setFileType(FTP.BINARY_FILE_TYPE);
    client.storeFile("/web/m.txt", fis);
    fis.close();
    client.logout();
} catch (IOException e) {
    e.printStackTrace();
}

我正在关注本教程:FTP File Upload From Sdcard to server

Logcat 输出,

  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vaibhav.myapplication/com.example.vaibhav.myapplication.MainActivity}: android.os.NetworkOnMainThreadException
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
      at android.app.ActivityThread.access$800(ActivityThread.java:151)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:135)
      at android.app.ActivityThread.main(ActivityThread.java:5254)
      at java.lang.reflect.Method.invoke(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:372)

【问题讨论】:

  • 错误是什么?
  • 应用程序可能崩溃,
  • 显示 logcat 输出。
  • 你给我发了ftp上传工作代码
  • 如果不显示错误,我无法帮助您。

标签: android ftp-client


【解决方案1】:

FTPClient 上传文件.. 为我工作

import android.os.AsyncTask;    
import android.support.v7.app.AppCompatActivity;     
import android.os.Bundle;     
import org.apache.commons.net.ftp.*;     
import java.io.FileInputStream;     
import java.io.IOException;     
public class MainActivity extends AppCompatActivity {     
    @Override     
    protected void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.activity_main);     
      new uploadTask().execute();     
      }     
    class uploadTask extends AsyncTask<String, Void, String> {    
        @Override    
        protected String doInBackground(String... params) {    
            FTPClient client = new FTPClient();     
            FileInputStream fis = null;    
            try {    
                client.connect("192.168.43.164", 21);    
                client.login("android", "android");    
                client.setFileType(FTP.BINARY_FILE_TYPE);    
                client.enterLocalPassiveMode();    
                client.sendCommand("OPTS UTF8 ON");    
                String filename = "/sdcard/m.txt";    
                fis = new FileInputStream(filename);    
                client.storeFile("/a/m.txt", fis);    
                fis.close();    
                client.logout();    
            } catch (IOException e) {    
                e.printStackTrace();
          }    
                return null;    
            }    
        }    
    }    

【讨论】:

  • 太好了.. 祝你好运:)
猜你喜欢
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
相关资源
最近更新 更多