Entwickler-Ecke
Internet / Netzwerk - Dateiupload fehlgeschlagen
Dude566 - Di 24.02.09 22:59
Titel: Dateiupload fehlgeschlagen
In diesem Thread
hier [
http://www.delphiforum.de/topic_idFTP+Verbindungsfehler_90267.html] war das erste Problem der Login.
Dieser funktioniert jetzt, jedoch wird die Datei nicht hochgeladen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Button1Click(Sender: TObject); begin with idFTP1 do begin Username := Edit1.Text; Password := Edit2.Text; Host := Edit3.Text; Connect; end; end;
procedure TForm1.Button6Click(Sender: TObject); begin OpenDialog1.Execute; IdFTP1.Put(OpenDialog1.FileName, ExtractFileName(OpenDialog1.FileName)); end; |
Gruß Dude566
jfheins - Mi 25.02.09 19:35
Hier mal ein Ausschnitt aus einem meiner früheren Projekte:
Delphi-Quelltext
1: 2: 3: 4:
| FFtp.SendCmd('TYPE I'); FFtp.Put(SourceFile, FileName); TriggerLogEvent ('Upload successful', etStatus); ChangeDir ('.'); |
Vielleicht hilfts ja ;)
Dude566 - Do 26.02.09 22:03
Wofür steht das "Type 1" und was macht das TriggerLogEvent?
In den Variablen Sourcefile und Filename hast du einfach den Pfad stehen oder?
Was hast du denn dann in Filename stehen? Nur den Dateinamen oder einen ganzen Pfad für den FTP, könnte da bei mir vielleicht der Fehler liegen, dass ich kein Pfad habe?
Xentar - Fr 27.02.09 00:49
Google -> "FTP Type I" ...
Ich denk mal, dass TriggerLogEvent eine interne Funktion bei ihm ist, die einfach nur mitloggt, was gemacht wird.
Und in Filename sollte, zumindest lokal, der komplette Pfad drinstehen (stichwort absoluter Pfad). Auf FTP Seite bin ich mir grad nicht sicher, aber ich mein, hier würde der Dateiname reichen.
Dude566 - Fr 27.02.09 14:09
In Sourcefile habe ich auch den absoluten Pfad, und in Filename den Dateinamen,
trotzdem funktioniert es nicht.
Dude566 - Di 03.03.09 18:24
Keine Ideen mehr?
Dude566 - Mo 09.03.09 19:12
Keiner??? Dann muss ich irgendwo anders Hilfe suchen.
Narses - Mo 09.03.09 19:27
Moin!
Was sind denn das für "Drohungen"... :| Du bist auch nicht gerade "auskunftsfreudig", was die Fehlersituation angeht. :nixweiss:
Dude566 hat folgendes geschrieben : |
| Dieser funktioniert jetzt, jedoch wird die Datei nicht hochgeladen. |
Was heißt das denn genau? Gibt es eine Fehlermeldung? Wenn ja, welche? Hast du geprüft, ob du Schreibrechte im Zielverzeichnis des FTP hast? Hast du es mal mit einem anderen FTP-Server probiert? Evtl. mal lokal? Dateiname frei von Sonderzeichen? FTP-Upload mit einem Standalone-FTP-Client probiert?
cu
Narses
Dude566 - Mo 09.03.09 19:33
Keine Fehlermeldung, die Schreibrechte sind auch richtig gesetzt.
Der Dateiname enthält auch keine Sonderzeichen, aber ich bin mir wie gesagt nicht sicher ob man denn einfach so in das Rootverzeichnis Uploaden kann ohne den Pfad anzugeben.
Immerhin habe ich das ja dann nur Opendialog1.Filename angegeben, ist das zu wenig?
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button6Click(Sender: TObject); begin OpenDialog1.Execute; IdFTP1.Put(OpenDialog1.FileName, ExtractFileName(OpenDialog1.FileName)); end; |
PS: Sollte keine Drohung sein, endlich antwortet einer! :dance2:
jaenicke - Mo 09.03.09 19:35
Solange du kein ChangeDir machst, sollte das Verzeichnis das Rootverzeichnis deines Bereichs sein, in das du laden kannst. Oder setzt du irgendwo ein anderes Verzeichnis? In dem Fall müsstest du berücksichtigen, dass / nicht dein Root ist sondern das des gesamten Dateisystems. D.h. du musst dir dein eigenes Startverzeichnis einfach vorher merken.
Dude566 - Mo 09.03.09 19:37
Nein, ich verbinde und wechsle nicht mit ChangeDir, also noch nicht.
Dann müsste er es doch ins Rootverzeichnis packen, macht er aber nicht.
Narses - Mo 09.03.09 19:40
Moin!
Kannst du denn die Datei mit einem FTP-Client hochladen (notfalls ftp.exe von Windows)?
cu
Narses
Dude566 - Mo 09.03.09 19:54
Ja, das hatte ich aber auch in dem alten Thread schon geschrieben. ;)
jaenicke - Mo 09.03.09 20:07
Bei mir funktioniert der Code einwandfrei. :nixweiss:
Lass dir doch einmal das Verzeichnis auflisten um zu schauen wo du bist:
Delphi-Quelltext
1:
| IdFtp1.List(ListBox1.Items); |
Narses - Mo 09.03.09 20:08
Moin!
Was steht denn nach einem Upload-Versuch im Log des Servers? :gruebel:
cu
Narses
Dude566 - Mo 09.03.09 22:33
jaenicke hat folgendes geschrieben : |
Bei mir funktioniert der Code einwandfrei. :nixweiss:
Lass dir doch einmal das Verzeichnis auflisten um zu schauen wo du bist: Delphi-Quelltext 1:
| IdFtp1.List(ListBox1.Items); | |
Ok das werde ich mal machen.
@
Narses
Wie mache ich das, habe damit nicht wirklich viel Erfahrung?
Edit: Jetzt werde ich doch verrückt!
Wenn ich mir den Inhalt in der ListBox anschaue zeigt er mir die anderen Dateien nicht, aber die testdatei.txt scheint doch da zu sein.
Im Online Filemanager von Kilu wird sie aber nicht angezeigt, schaue nochmal bei FileZilla. :roll:
Die Datei ist in www-data. Aber dann müsste ich sie doch sehn. :?: :?!?:
Xentar - Mo 09.03.09 22:59
...
sicher, dass du dich mit dem gleichen Benutzer anmeldest, und im gleichen Verzeichnis bist?
jaenicke - Mo 09.03.09 23:03
Was gibt denn RetrieveCurrentDir zurück?
Dude566 - Mo 09.03.09 23:15
Hier ein Screenshot, ich dachte aber eigentlich, dass die Datei dann in den www käme.
Moderiert von
Narses: Bild als Anhang hochgeladen
jaenicke - Mo 09.03.09 23:22
Also bei mir ist der Screenshot nicht erreichbar. :nixweiss:
Warum legst du den nicht zumindest zusätzlich in den Anhang? ;-)
jaenicke - Mo 09.03.09 23:25
Die Datei kommt in das Hauptverzeichnis deines Bereichs, wenn du das in ein Unterverzeichnis legen willst, dann musst du vorher mit ChangeDir in dieses Verzeichnis wechseln.
Dude566 - Mo 09.03.09 23:29
Ich dachte der www wäre der Root, denn nur was daran liegt kann man ja auch anzeigen lassen.
jaenicke - Mo 09.03.09 23:32
Das ist das Verzeichnis auf das deine Subdomain umgeleitet wird. Zur Datensicherung usw., die man von außen nicht sehen soll, ist aber das Hauptverzeichnis für den FTP-Zugriff eine Ebene darüber. Das ist eigentlich immer so.
Das siehst doch aber in deinem FTP-Programm auch immer. Wenn du mit dem etwas hochlädst, da musst du ja auch immer das Verzeichnis wechseln. ;-)
Dude566 - Mo 09.03.09 23:36
Ja da hast du recht, wie muss ich dass dann angeben wenn ich in das www Verzeichnis wechseln will.
So:
Delphi-Quelltext
1:
| IdFTP1.ChangeDir('http://beispiel.kilu.de/www/beispiel'); |
?
Xentar - Di 10.03.09 00:01
Wäre es schwierig, das einfach auszuprobieren, und danach nochmal das CurrentDir abzurufen?
Und außerdem: WARUM http?!
falls das nicht geht, versuch halt nur /www/
jaenicke - Di 10.03.09 00:11
Das http:// hat nichts mit dem FTP-Zugriff zu tun. Der HTTP-Server leitet die Zugriffe auf das entsprechende Verzeichnis /.../www um. Dabei ist je nach FTP-Server / dein eigenes Rootverzeichnis, das virtuell gemappt wird, oder du hast ein Verzeichnis /root/users/dudeftp/www. Welcher dieser Fälle vorliegt, solltest du in FileZilla sehen.
Vermutung: Es sollte reichen, wenn du 'www' angibst bei ChangeDir.
Dude566 - Di 10.03.09 18:46
Xentar hat folgendes geschrieben : |
| Wäre es schwierig, das einfach auszuprobieren, und danach nochmal das CurrentDir abzurufen? |
Ja, wenn man gerade kein Delphi hat. ;)
jaenicke - Di 10.03.09 18:48
Dann nutzen dir die Antworten doch ohnehin nichts solange. ;-)
Frag doch lieber weiter, wenn du Delphi da hast.
Dude566 - Di 10.03.09 18:49
Doch, jetzt schon wieder. Werde das mit ChangeDir gleich machen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!