Android Studio - Problem bei Implementierung FTP upload

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Android Studio - Problem bei Implementierung FTP upload

    Hallo miteinander,
    ich bin auf der Suche nach einer funktionierenenden Implementierung für einen Dateiupload via FTP innerhalb Android Studio.
    Meine jetzige Implementierung läuft auf dem PC unter Eclipse ohne Probleme. Portiere ich die Routine für den Datenversand dann in Android Studio läuft der Debugger nur bis zum ftpClient.connect(server, port);
    danach springt er sofort zum finally-Part und tut eigentlich nichts.

    Woran könnte der Fehler liegen?
    Gibt es funktionierende Snippets?

    Vielen Dank für Eure Antworten! Matthias

    Source-Code:
    ===================================================================================
    package com.example.ftpuploaddemo3;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;

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

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

    public class MainActivity extends AppCompatActivity {

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

    SendFilePerFTP();
    }

    private void SendFilePerFTP() {
    String server = "servername";
    int port = 21;
    String user = "username";
    String pass = "password";


    FTPClient ftpClient = new FTPClient();
    try {
    ftpClient.connect(server, port);
    ftpClient.login(user, pass);
    ftpClient.enterLocalPassiveMode();

    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

    File firstLocalFile = new File("/storage/emulated/0/LastGPS.json");

    String firstRemoteFile = "Neu.json";
    InputStream inputStream = new FileInputStream(firstLocalFile);

    System.out.println("Start uploading first file");
    boolean done = ftpClient.storeFile(firstRemoteFile, inputStream);
    inputStream.close();
    if (done) {
    System.out.println("The first file is uploaded successfully.");
    }

    } catch (IOException ex) {
    System.out.println("Error: " + ex.getMessage());
    ex.printStackTrace();
    } finally {
    try {
    if (ftpClient.isConnected()) {
    ftpClient.logout();
    ftpClient.disconnect();
    }
    } catch (IOException ex) {
    ex.printStackTrace();
    }
    }
    }
    }
    =================================================================================
    Manifest File:
    =================================================================================


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.ftpuploaddemo3">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE "/>

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>

    </manifest>

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von MatAne ()

  • hallo also ic h würde sagen das es mit den String als Serveradresse falsch ist.

    ftpClient.connect(server, port);

    Sinnvoller wäre
    ftpClient.connect("192.268.1.254");

    Ich denke das deine Server Adresse nicht aufgelöst wird.
    Normalerweise heißt so eine Adresse auch ftp.servername.com oder so ähnlich.

    Wie gesagt teste erst mal die ip Wenn das geht ligt es an der nahmensuflösung (dhcp , Hostdatei)


    im allgemeinen würde ich empfehlen eine ftp Verbindung nicht im main Thread auszuführen.
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jogimuc ()

  • Vielen Dank für Eure Anregungen. Die direkte Eigabe der IP-Adresse habe ich auch schon probiert. Gleiches Fehlerbild.

    Mit dem Starten der Routine aus einem weiteren Thread bin ich noch nicht vertraut und muss erst mal nachlesen wie ich das umsetzen kann. Probiere das aber bald aus und melde mich dann wieder.

    Vorerst herzlichen Dank!!