01. februar 2013 - 11:31Der 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;
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ø)
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;
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 ?
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 :-)
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
Prøv den her: FTP.Put(ExtractFilePath(Application.Exename) + 'Test.exe', 'Test.exe');
Det kan være den skal have hele genvejen til filen.
Synes godt om
Ny brugerNybegynder
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.