Avatar billede michael-schou Novice
01. februar 2013 - 11:31 Der er 12 kommentarer og
1 løsning

Uploade fil via Indy FTP i Delphi - Fejler (SOCKET ERROR # 10053)

Hej Eksperter.

Kan simpelthen ikke gennemskue hvad der går galt når jeg prøver at uploade en fil til min hjemmeside via. Indy FTP Client i Delphi.

<-SNIP START->

//Connecting To FTP
Procedure ConnectToFtp;
begin
try
  Form1.IdFTP1.Host := 'MIN HOST';
  Form1.IdFTP1.Username := 'MIT BRUGERNAVN';
  Form1.IdFTP1.Password := 'MIT PASSWORD';
  if Form1.IdFTP1.Connected Then Form1.IdFTP1.Disconnect;
  Form1.IdFTP1.Connect;
  Form1.IdFTP1.ChangeDir('/TEST/');

  Application.ProcessMessages;
  except
    on E: Exception do begin
      Application.MessageBox(PChar('Der er opstået en fejl i forbindelsen til serveren. Fejl: ' + E.Message), 'Fejl', MB_OK or MB_ICONERROR);
  end;
  end;
end;

//Upload Fil - Knap
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ConnectToFtp;
IdFTP1.Put('Test.txt');
end;

end.

<-SNIP SLUT->

Har prøvet med følgende koder :
IdFTP1.Put('Test.txt');
IdFTP1.Put('Test.txt', 'Test.txt');
IdFTP1.Put('Test.txt', 'Test.txt', False);

Men intet virker får bare fejlen :
SOCKET ERROR # 10053 - Software caused connection abort

Men jeg kan sagtens lave en ny mappe på min ftp uden problemer
IdFTP1.MkDir('TEST 2');

Nogen der kan gennemskue hvad der går galt?

Mvh.

Michael.
Avatar billede spil2vind Nybegynder
01. februar 2013 - 12:20 #1
Du skriver ikke noget om hvilken linie der giver fejlen
Avatar billede hugopedersen Nybegynder
01. februar 2013 - 12:34 #2
Når jeg har skullet uploade noget med Indy så har jeg altid skullet bruge .Put(AbsolutNavn, Navn)
Altså først hele filnavnet på den lokale fil og dernæst kun filnavnet som der bliver gemt i på serveren.
Husk også at tage højde for om det er tekst eller binære filer.
(binære filer overført i tekstmode er noget hø)
Avatar billede michael-schou Novice
01. februar 2013 - 12:37 #3
UPS .. Da var jeg lige lovlig hurtig :-)

Jeg får fejlen ved denne linje :

IdFTP1.Put('Test.txt'); <- FEJLEN OPSTÅR HER VED PUT COMMANDOEN
Avatar billede michael-schou Novice
01. februar 2013 - 13:02 #4
hugopedersen -> Det har jeg lige prøvet det virker heller ikke.
Avatar billede kroning Nybegynder
01. februar 2013 - 16:17 #5
Har du mulighed for at lave en test konto vi kan prøve med?
Avatar billede michael-schou Novice
01. februar 2013 - 17:12 #6
Jeg opretter en test FTP server og skriver når den er klar :-)

Vil meget gerne have din mail adresse så jeg kan sende dig min IP for den har jeg ikke lyst til at skrive her :-)
Avatar billede michael-schou Novice
01. februar 2013 - 20:02 #7
Så er der en TEST FTP Server klar :-)

Har sendt dig en mail Kroning.
Avatar billede spil2vind Nybegynder
01. februar 2013 - 20:17 #8
Har prøvet med denne kode, som du kan afprøve, den virker på mit ftp site

unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    IdFTP1.Host        := '';
    IdFTP1.Username    := '';
    IdFTP1.Password    := '';
    IdFTP1.ReadTimeout  := 20000; {50000}
    IdFTP1.TransferType := ftBinary;
    try
        Form1.IdFTP1.Connect;
        try
            Form1.IDFTP1.Put( 'MinFil.txt','MinFil.txt',false);
            Form1.IdFTP1.DisConnect;
        except
            on E: Exception do begin
              Application.MessageBox(PChar('Der er opstået en fejl i forbindelse FTP.Put Fejl: ' + E.Message), 'Fejl', MB_OK or MB_ICONERROR)
            end;

        end;
    except
        on E: Exception do begin
          Application.MessageBox(PChar('Der er opstået en fejl i forbindelse FTP.Open Fejl: ' + E.Message), 'Fejl', MB_OK or MB_ICONERROR)
        end;
    end;

end;

end.
Avatar billede kroning Nybegynder
01. februar 2013 - 21:55 #9
Jeg har prøvet med de oplysninger du har sendt og det virker fint i f.eks. FileZilla FTP klient men med Indy virker Put ikke, jeg kan bruge den samme kode til at forbinde til min egen server uden problemer, jeg har ingen forklaring ?
Avatar billede michael-schou Novice
01. februar 2013 - 23:28 #10
Hej Kroning

Jeg har nu testet dit eksempel og har test mit eget eksempel igen, efter at jeg midlertidigt har slået min windows firewall fra, og sjovt nok så virker det nu :-)

Smid et svar, du fik mig på rette vej med din sidste post :-)

Takker.
Avatar billede spil2vind Nybegynder
01. februar 2013 - 23:32 #11
Måske er grunden at der ikke er skrive rettigheder til den folder der uploades til, en af mine ftp sites som er hos meebox.net er der en folder public_ftp hvor man kan uploade
Avatar billede kroning Nybegynder
02. februar 2013 - 20:03 #12
Svar
Avatar billede juzas Mester
17. juli 2013 - 16:00 #13
Prøv den her:
FTP.Put(ExtractFilePath(Application.Exename) + 'Test.exe', 'Test.exe');

Det kan være den skal have hele genvejen til filen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester