Apache FTPClient upload

Status
Nicht offen für weitere Antworten.

Jukka

Neues Mitglied
Hello World

Ich habe ein Problem mit meinem FTPClient. I benütze eine Erweiterung von org.apache.commons.net.ftp.FTPClient. Ich habe ein Ubuntu OS auch einer i386 architektur. I verbinde zu einem FTP Server, der soviel ich weiss, auch auf irgendeinem UNIX betrieben wird.

Ich kann Files vom Server "herunterladen", aber hochladen funktioniert nicht. Folgend einige Informationen, die ich mir auf die Konsole ausgaben liess:
Reply String: 230 User web282f2 logged in

setFileType: true
execute: screenShot
Change w-Dir: true
status: 227 Entering Passive Mode (88,198,40,25,150,29).
storeFile: false

Danach bin ich per Debugger in den Apache-Quelltext und habe herausgefunden, dass auf folgender Zeile null zurückgegeben wird:
Java:
if (pasv() != FTPReply.ENTERING_PASSIVE_MODE)
                return null;
Diese Zeile ist: FTPClient.java:498


Folgend der ganze Quelltext:

Achtung:
Ich denke es ist logisch, dass ich nicht die Klasse selbst starte, sondern aus einer anderen heraus, wo ich zuerst ein objekt erstelle und dann nur die methode uploadImage() aufrufe. Ich gebe Ihr als Parameter jedoch Dummy-Strings mit, weil sie sowieso nicht beachtet werden (zum test).

Java:
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.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.io.CopyStreamException;

public class FtpClient {

	private FTPClient client;

	public FtpClient(String host, String user, String password)
			throws IOException {
		client = new FTPClient();
		client.connect(host);
		client.login(user, password);
		System.out.println("Reply String: "+client.getReplyString());
		System.out.println("setFileType: "+client.setFileType(FTP.BINARY_FILE_TYPE));
		client.enterLocalPassiveMode();
	}

	public void uploadImage(String remote, String local) {
		try {
			System.out.println("Change w-Dir: "+client.changeWorkingDirectory("images"));
			File f = new File("/home/jukka/Desktop/help.png");
			InputStream input = new FileInputStream(f);
			boolean retValue = client.storeFile(f.getName(), input);
			input.close();
			System.out.println("status: "+client.getStatus());
			System.out.println("storeFile: "+retValue);
		} catch (FTPConnectionClosedException e){
			e.printStackTrace();
		}catch (CopyStreamException e){
			e.printStackTrace();
		}catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void uploadFile(String remote, String local) throws IOException {
		InputStream input = new FileInputStream(local);
		client.storeFile("images/" + remote, input);
		input.close();
	}

	public boolean cd(String destination) throws IOException {
		return client.changeWorkingDirectory(destination);
	}

	public InputStream read(String filename) throws IOException {
		return client.retrieveFileStream(filename);
	}
}

Zögert nicht mich zu fragen, falls etwas nicht klar sein sollte.

es danke und grüsst
jukka
 
I

Imo

Gast
Hallo,

ich habe einen FTP- Upload geschrieben, der nach dem gleichen prinziep läuft. Ich nutze es um PDF- Dateien auf einen Server zu laden.

Bei Upload selbst bringt er mir keine Fehler, aber wenn ich die Größe der Zieldatei mit der Quelldatei vergleiche, ist das Ziel immer Größer. bei meinem bsp ist die originalgröße 165.484 bytes und auf dem server ist die datei plötzlich 166.772 bytes groß.

woran kann das liegen?

fals quellcode gebraucht wird, kann ich den gerne nachreichen :)

Danke
der Imo'
 
D

DoesNotMatter

Gast
Ich kenn mich mit den verwendeten Funktionen nicht aus aber im Normalfall läuft der upload so ab:
1: Typ der zu übertragenden Daten bestimmen: "TYPE A\r\n", "TYPE E\r\n", "TYPE I\r\n", "TYPE L\r\n", an Controlport des FTP - Servers schicken
2: "PASV\r\n" - Befehl an Ftp - Controlport senden.
3: Aus Serverreply Verbindung zu dem geöffnenten Passiven Datenport aufbauen.
227 Entering Passive Mode (88,198,40,25,150,29), 150 = HighPort, 29 = LowPort
Java:
int ftpPort = 0;
ftpPort += 150; ftpPort = ftpPort << 8;
ftpPort += 29;
4. "STOR FileName.dat\r\n" - Befehl an ControlPort senden.
5. Datenstream an geöffneten passiven Port senden
6. Nach erfolgreicher Datenübertragung unbedingt passive Verbindung schließen, damit man wieder msg an den Controlport senden kann

Ach ja nicht vergessen nach jedem Befehl den Serverreply rauszuziehen.
Vlt liegt irgentwo dor dein Fehler, der Upload sollte so ohne problem ablaufen, ansonsten hat der Server evtl Probleme.
 

Imothep

Neues Mitglied
So ... hatte ganz vergessen, dass ich noch einen Login habe

Danke für die schnelle und sehr hilfreiche Antwort. Habe die Datei wie folgt erfolgreich hochgeladen bekommen:

Java:
ftp.sendCommand("TYPE A\r\n");
System.out.println("Antwort: "+ftp.getReplyString());

ftp.sendCommand("PASV\r\n");
System.out.println("Antwort: "+ftp.getReplyString());

boolean success = ftp.storeFile("test.pdf",fInpuntStream);

Vielen dank :D

der Imo'
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
T Logging mit org.apache.logging.log4j Allgemeine Java-Themen 1
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
H Apache fop -- welche Möglichkeit gibt es um den Fortschritt anzuzeigen (Progressbar) Allgemeine Java-Themen 5
H Apache fop - OutOfMemoryError Allgemeine Java-Themen 10
B Schnittstelle zwischen MySQL und Apache Allgemeine Java-Themen 8
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
F Fehlermeldung: java.lang.NoClassDefFoundError: org/apache/commons/net/ntp/NTPUDPClient Allgemeine Java-Themen 6
N Apache POI/ neue Reihe in Excel mit einem Button Allgemeine Java-Themen 2
I Apache POI Bild in Word ersetzen Allgemeine Java-Themen 15
O xlsx Datei auslesen mit POI Apache liest keine LEERZELLEN Allgemeine Java-Themen 6
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
L APACHE POI PIVOT TABELLEN Allgemeine Java-Themen 4
L Apache POI Datenquelle Allgemeine Java-Themen 1
S Apache POI Filtern nach bestimmten Kriterium Allgemeine Java-Themen 1
L JavaFX JavaFX Chart in Apache Poi Excel Datei Allgemeine Java-Themen 2
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
F Input/Output NullPointerException, aber wieso? [Apache POI] Allgemeine Java-Themen 11
F Input/Output NullPointerException with Apache POI Allgemeine Java-Themen 7
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
J Apache POI - No external workbook with name Allgemeine Java-Themen 5
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
MiMa Apache Tika: Warnmeldungen und Beispielcode Allgemeine Java-Themen 12
X Performance für Tomcat / Apache optimieren Allgemeine Java-Themen 2
G Ant Probleme bei einer Installation die Apache ant+ivy verwendet Allgemeine Java-Themen 14
FrittenFritze Swing Apache Batik - Zoom an einer bestimmten Stelle Allgemeine Java-Themen 4
K Apache poi: Deprecated getCellType Allgemeine Java-Themen 3
J Apache POI Excel- Blattschutz aufheben Allgemeine Java-Themen 2
I Apache POI Word Text einfügen Allgemeine Java-Themen 26
T Geschlossen: Apache POI - Excel einlesen Allgemeine Java-Themen 0
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
K Apache POI Word bestimmte Textstellen bearbeiten Allgemeine Java-Themen 1
R Apache POI XSSF Allgemeine Java-Themen 2
E Apache POI Powerpoint Verlinkungen ändern Allgemeine Java-Themen 4
T xls-Datei per Apache Commons CsvParser einlesen UTF-8 Zeichen russische Zeichen Allgemeine Java-Themen 2
zer0zer0 Best Practice apache common cli - optionen für hilfe ausblenden Allgemeine Java-Themen 5
S Eclipse Apache Camel FTP: Fehlerbehandlung, wie? Allgemeine Java-Themen 2
H Excel Datei einlesen mit Apache POI Allgemeine Java-Themen 1
GianaSisters Apache POI - Hyperlink erstellen Allgemeine Java-Themen 0
reibi Apache PDFBox Allgemeine Java-Themen 0
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
C Was bekomme ich eine Nullpointerexception? (Apache POI) Allgemeine Java-Themen 3
S OOP Apache Commons Math - Verwendung von Genetics - Wie werden Daten in Chromosomen gespeichert? Allgemeine Java-Themen 4
H Apache POI HSSF - Farbe/Rahmen etc. ohne Style-Vorlage? Allgemeine Java-Themen 4
E Apache POI-Datei lesen und umschreiben Allgemeine Java-Themen 8
G Input/Output Apache POI Excel Allgemeine Java-Themen 5
L Apache CLI: Args[] übergeben Allgemeine Java-Themen 3
P docx mit Apache POI auslesen, verändern und zurückschreiben Allgemeine Java-Themen 2
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
L Apache Common CLI Allgemeine Java-Themen 4
J Webstart (auf Apache) jnlp wird nicht geladen Allgemeine Java-Themen 2
S HTTP Apache HTTPClient Problem Allgemeine Java-Themen 4
R org.apache.http kompletter Internetausfall Allgemeine Java-Themen 7
J xlsx Dateien lesen OHNE apache POI Allgemeine Java-Themen 6
V Für was benötigt man Apache Common Allgemeine Java-Themen 3
V Apache POI Excel Datum auslesen Allgemeine Java-Themen 6
V Apache POI Excel Sheet auslesen Allgemeine Java-Themen 5
B Problem mit RegEs und org.apache.regexp.RE Allgemeine Java-Themen 5
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
Landei Erfahrungen mit JavaConfig oder Apache Commons Config? Allgemeine Java-Themen 3
A Apache License, Version 2.0 Allgemeine Java-Themen 7
S Bzip2 apache commons-compress Allgemeine Java-Themen 3
Chris81T Apache FOP 0.20-5 mit JNI von C++ Code aufrufen Allgemeine Java-Themen 8
C Apache POI(HSSF) Conditional Formatting Allgemeine Java-Themen 3
G Apache soll mit SVN zusammenarbeiten Allgemeine Java-Themen 3
E Apache Commons - PropertyConfiguration - Autosave Allgemeine Java-Themen 2
G Servlet über apache Tomcat ansprechen Allgemeine Java-Themen 6
alexpetri DirectoryWalker apache.commons Allgemeine Java-Themen 3
S Apache Commons Net geht nicht Allgemeine Java-Themen 5
G mit Apache-Jakarta-POI auch Graphiken aus Excel einlesen? Allgemeine Java-Themen 3
T Apache Lucene Allgemeine Java-Themen 2
Q Ant und org.apache.log4j.xml.DOMConfigurator Problem Allgemeine Java-Themen 2
M Java Webserver - Tomcat alleine oder zusammen mit Apache? Allgemeine Java-Themen 3
F FtpClient.rename.... Allgemeine Java-Themen 6
F FTP FtpClient im JDK7 Allgemeine Java-Themen 3
MQue FTPClient in txt schreiben Allgemeine Java-Themen 3
I FTP-Upload mit sun.net.ftp.FtpClient Allgemeine Java-Themen 5
C Logfile upload zu einem externen filezilla sftp server Allgemeine Java-Themen 6
I URLConnection Upload/Download Allgemeine Java-Themen 3
G Status beim Upload einer Datei Allgemeine Java-Themen 2
R Upload-Applet wird nicht vom Server erkannt! Allgemeine Java-Themen 15
R multipart/form-data-Upload-Alptraum Allgemeine Java-Themen 7
R Upload Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben