AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei per FTP hochladen

Ein Thema von zod1ac · begonnen am 6. Mär 2010 · letzter Beitrag vom 18. Mär 2010
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#31

Re: Datei per FTP hochladen

  Alt 7. Mär 2010, 01:38
Zitat von zod1ac:
Ja genau, das hab ich mir auch gedacht, wie kann ich herausfinden, WO genau ich denn Schreibrechte habe und wo nicht?

Also dieser Befehl schafft Abhilfe?


Edit: Ich hab grad einiges über Special Folders gelesen und das scheint ja eine richtig komplizierte Sache zu werden. Gibts denn nichts anderes? Also gibts keinen Platz auf dem es im Normalfall Schreibrecht gibt?

lg
Die Special Folders sagen dir noch nicht, ob du da Schreibrechte hast.
Du bekommst nur die Pfadangaben geliefert.

Bei einigen Pfaden kann man aber davon ausgehen, dass der aktuelle Benutzer dort Schreibrechte haben sollte, sonst könnte der nämlich nicht vernünftig arbeiten

Kompliziert ist das nicht wirklich ... dafür gibt es fertige Units womit man das auslesen kann.
Die Jedi's haben da einiges im Programm.

Ich habe dir mal eine Unit angehängt, die diese Special Folders mit einfachen Befehlen erschlägt
Zudem ist in der Unit auch eine Funktion, die dir die Rechte in dem Verzeichnis oder an einer Datei zurückliefert.

Eine Demo ist auch dabei, da werden alle Special Folders aufgelistet inkl. der Rechte.
Angehängte Dateien
Dateityp: pas uspecialfolders_700.pas (35,6 KB, 61x aufgerufen)
Dateityp: exe specialfolderdemo_754.exe (1.014,0 KB, 53x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
zod1ac

Registriert seit: 6. Mär 2010
27 Beiträge
 
#32

Re: Datei per FTP hochladen

  Alt 7. Mär 2010, 01:53
Vielen Dank dafür erstma, doch wie genau binde ich das nun in meinen Quelltext ein?
Also was genau muss ich denn jetzt machen? Habs jetzt soweit verstanden, dass SpecialFolders mir die Ordner anzeigt, die Schreibrecht haben usw.

Doch was nun? Wie genau bau ich das nun ein?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#33

Re: Datei per FTP hochladen

  Alt 7. Mär 2010, 02:29
z.B. so (ich habe mal die schönen Eigenheiten der Unit hier benutzt )
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdExplicitTLSClientServerBase, IdFTP, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    IdFTP1: TidFTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations } 
  public
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

uses

  // Unit einbinden

  uSpecialFolders;

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);
var sl:TStrings;
begin

  // Temporäres Verzeichnis für diese App erstellen

  if
    ForceDirectories( ResolveSFVars( '{appdatatemp}' ) )
  then
    begin
      sl := TStringList.Create;
      try
        sl.Add(Edit1.text);
        sl.Add(Edit2.text);
        sl.SaveToFile( ResolveSFVars( '{appdatatemp}\text.txt' ) );
      finally
        sl.Free;
      end;
      
      with IdFTP1 do
        begin
          Host :='kidgudi.ki.funpic.de';
          Username := 'kidgudi';
          Password := '*****';
          Passive := true;
          Connect;
          Put( ResolveSFVars( '{appdatatemp}\text.txt' ), 'text.txt', true);
          Disconnect;
        end;

      // Temporäres Verzeichnis aufräumen und löschen
      DeleteAndEmptyDir( '{appdatatemp}' );

    end
  else
    ShowMessage( 'Temporäres Verzeichnis konnte nicht erstellt werden!' );
end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
zod1ac

Registriert seit: 6. Mär 2010
27 Beiträge
 
#34

Re: Datei per FTP hochladen

  Alt 7. Mär 2010, 03:04
Oke um die Unit uSpecialFolders einzubinden, muss sie sich im gleichen Ordner befinden, wie die normale Unit1 auch? Oder ist das egal?

Also habs soweit miteinbezogen, doch nun kommt die Fehlermeldung:

Exception class EIdReplyRFCError with message 'text.txt: Append/Restart not permitted, try again'.

Was nun? =(


Update:

Fehlermeldung scheint weg zu sein, funktioniert alles einwandfrei. Danke
  Mit Zitat antworten Zitat
JDouble

Registriert seit: 8. Okt 2009
Ort: Kempten
2 Beiträge
 
Delphi 2009 Professional
 
#35

Re: Datei per FTP hochladen

  Alt 18. Mär 2010, 17:51
Hallo

Ich versuche mit der TIdFTP-Komponente via Put einige größere Dateien hochzuladen.
Das heißt ich führe den Connect durch und rufe anschließend in einer Schleife mehrmals hintereinander Put auf.

Leider kommt es dann immer mal wieder vor, dass die Verbindung unterbrochen wird.
Bei der Protokollierung über das OnStatus-Ereignis erhalte ich dann als Meldungstext "Disconnected".

Wie geht man in so einem Fall am besten vor ?
Kann man einfach erneut Connect aufrufen (innerhalb der OnStatus-Behandlung) ?

Oder wie macht ihr das ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz