![]() |
WinInet FTPPutFile() klappt net :x
Delphi-Quellcode:
hCon ist immer nil. Weiß jemand wieso?
function UploadToFtp(ftp, name, pw, _file: String):LongBool;
var hNet, hCon: Pointer; begin result := false; hNet := InternetOpen('YouAreSkored', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); if hNet <> nil then begin hCon := InternetConnect(hNet, PChar(ftp), INTERNET_DEFAULT_FTP_PORT, PChar(name), PChar(pw), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0); if hCon <> nil then begin result := FtpPutFile(hNet, PChar(_file), PChar(ExtractFileName(_file)), FTP_TRANSFER_TYPE_ASCII, 0); InternetCloseHandle(hCon); end; InternetCloseHandle(hNet); end; end; MfG: sk0r |
Re: WinInet FTPPutFile() klappt net :x
Hallo,
WinInet wird es wissen:
Delphi-Quellcode:
Grüße vom marabu
const
S_AGENT = 'YouAreSkored'; function UploadToFtp(serverName, userid, password, fileName: string): LongBool; var hNet, hCon: HINTERNET; begin Result := False; hNet := InternetOpen(S_AGENT, INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); if Assigned(hNet) then begin hCon := InternetConnect(hNet, PChar(servername), INTERNET_DEFAULT_FTP_PORT, PChar(userid), PChar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); if Assigned(hCon) then begin Result := FtpPutFile(hNet, PChar(fileName), PChar(ExtractFileName(fileName)), FTP_TRANSFER_TYPE_ASCII, 0 ); InternetCloseHandle(hCon); end else ShowMessage(SysErrorMessage(GetLastError)); InternetCloseHandle(hNet); end else ShowMessage(SysErrorMessage(GetLastError)); end; |
Re: WinInet FTPPutFile() klappt net :x
Da zeigt er bei mir keine Nachricht an. :x
|
Re: WinInet FTPPutFile() klappt net :x
So aus der Ferne sieht es dann sehr gut aus: Ohne Nachricht auch kein Fehler.
Bist du mal schrittweise durch den Code gegangen? |
Re: WinInet FTPPutFile() klappt net :x
Klar, aber ich sehe ja auch nicht den geringsten Fehler. :x
|
Re: WinInet FTPPutFile() klappt net :x
Hallo,
FtpPutFile muss der Rückgabewert von InternetConnect übergeben werden. D.h hCon anstatt hNet.
Delphi-Quellcode:
Result := FtpPutFile(hCon, PChar(fileName),
PChar(ExtractFileName(fileName)), FTP_TRANSFER_TYPE_ASCII, 0 ); |
Re: WinInet FTPPutFile() klappt net :x
Ich komme ja nicht mal bis zu FTPPutFile. :(
|
Re: WinInet FTPPutFile() klappt net :x
Wie hast du den "serverName" angegeben? Muss ohne "ftp://" sein.
|
Re: WinInet FTPPutFile() klappt net :x
Hallo,
nach Korrektur des von Tom gefundenen Fehlers funktioniert der Code einwandfrei.
Delphi-Quellcode:
Das Protokoll ist natürlich nicht Bestandteil des Server-Namens. Ich würde die Prozedur noch so abändern, dass die Datei nicht immer im Current Working Directory abgelegt wird.
const
S_AGENT = 'YouAreSkored'; function UploadToFtp(serverName, userid, password, fileName: string): LongBool; var hNet, hCon: HINTERNET; begin Result := False; hNet := InternetOpen(S_AGENT, INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); if Assigned(hNet) then begin hCon := InternetConnect(hNet, PChar(servername), INTERNET_DEFAULT_FTP_PORT, PChar(userid), PChar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); if Assigned(hCon) then begin Result := FtpPutFile(hCon, PChar(fileName), PChar(ExtractFileName(fileName)), FTP_TRANSFER_TYPE_ASCII, 0 ); InternetCloseHandle(hCon); end else ShowMessage(SysErrorMessage(GetLastError)); InternetCloseHandle(hNet); end else ShowMessage(SysErrorMessage(GetLastError)); end; procedure TDemoForm.TestClick(Sender: TObject); begin if UploadToFtp('localhost', 'achim', '', ExtractFileName(ParamStr(0))) then ShowMessage('alli swell') else ShowMessage(SysErrorMessage(GetLastError)); end; Freundliche Grüße |
Re: WinInet FTPPutFile() klappt net :x
Joa, es liegt gar nicht am Code, sondern an meinem FTP. Kennt ihr ohost.de?
Habe mich versucht zu name.na.ohost.de zu verbinden, aber das klappt nicht. Es liegt also an ohost selbst. :o |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz