Sicherlich kennen Sie bereits unsere Visual Basic Extended Library - sprich Wie sich das ganze direkt in VB und mit Hilfe des Windows-API realisieren lässt, zeigt unser heutiger Tipp. Fügen Sie nachfolgenden Code in ein Modul ein: Option Explicit ' zunächst alle benötigten API-Deklarationen Private Declare Function InternetOpen Lib "wininet.dll" _ Alias "InternetOpenA" ( _ ByVal sAgent As String, _ ByVal nAccessType As Long, _ ByVal sProxyName As String, _ ByVal sProxyBypass As String, _ ByVal nFlags As Long) As Long Private Declare Function InternetCloseHandle Lib "wininet.dll" ( _ ByVal hInet As Long) As Integer Private Declare Function InternetConnect Lib "wininet.dll" _ Alias "InternetConnectA" ( _ ByVal hInternetSession As Long, _ ByVal sServerName As String, _ ByVal nServerPort As Integer, _ ByVal sUsername As String, _ ByVal sPassword As String, _ ByVal nService As Long, _ ByVal nFlags As Long, _ ByVal nContext As Long) As Long Private Declare Function FtpPutFile Lib "wininet.dll" _ Alias "FtpPutFileA" ( _ ByVal hFtpSession As Long, _ ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean ' Kostanten Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0 Private Const INTERNET_INVALID_PORT_NUMBER = 0 Private Const INTERNET_SERVICE_FTP = 1 ' Übertragungsmodus Public Enum eTransferType FTP_TRANSFER_TYPE_BINARY = &H2 FTP_TRANSFER_TYPE_ASCII = &H1 End Enum ' Handles Private hOpen As Long Private hConnection As Long ' Verbindung zum Server herstellen Public Function Connect(ByVal sRemoteHost As String, _ Optional ByVal sUsername As String = "anonymous", _ Optional ByVal sPassword As String = "guest") As Boolean ' Ist noch eine Verbindung vorhanden? ' Wenn ja, muss diese zunächst beendet werden! If hOpen <> 0 Or hConnection <> 0 Then Disconnect End If ' Neue Verbindung starten hOpen = InternetOpen("FTP", _ INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, _ vbNullString, 0) If hOpen Then hConnection = InternetConnect(hOpen, _ sRemoteHost, INTERNET_INVALID_PORT_NUMBER, _ sUsername, sPassword, INTERNET_SERVICE_FTP, 0, 0) End If Connect = (hConnection <> 0) End Function ' Datei auf den Server hochladen Public Function FileUpload( _ ByVal sLocalFilename As String, _ ByVal sRemoteFilename As String, _ Optional ByVal nTransferType As eTransferType = _ FTP_TRANSFER_TYPE_BINARY) As Boolean FileUpload = FtpPutFile(hConnection, _ sLocalFilename, sRemoteFilename, nTransferType, 0) End Function ' Verbindung zum Server beenden Public Sub Disconnect() If hConnection <> 0 Then InternetCloseHandle hConnection hConnection = 0 End If If hOpen <> 0 Then InternetCloseHandle hOpen hOpen = 0 End If End Sub Aufrufbeispiel: Dim sRemoteHost As String Dim sLocalFile As String Dim sRemoteFile As String Dim nTransferMode As eTransferType Dim bResult As Boolean ' Anmeldung am eigenen T-Online Server sRemoteHost = "home-up.t-online.de" If Connect(sRemoteHost) Then ' Lokaler Dateiname sLocalFile = App.Path & "\myHelp.txt" ' Ziel-Datei auf dem Server ' Achtung! Verzeichnis muss bereits existsieren!!! sRemoteFile = "/download/help/myHelp.txt" ' Ascii-Übertragung nTransferMode = FTP_TRANSFER_TYPE_ASCII ' Upload durchführen bResult = FileUpload(sLocalFile, sRemoteFile, nTransferMode) If bResult Then MsgBox "Upload erfolgreich!" Else MsgBox "Fehler beim Upload der Datei!" End If ' Verbindung trennen Disconnect End If Anmerkung: Dieser Tipp wurde bereits 45.924 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Tipp des Monats Heinz Prelle Datei-Mehrfachauswahl an eine ListBox übergeben Dieser Tipp zeigt, wie Sie über den Windows-CommonDialog eine Mehrfach-Dateiauswal realisieren... TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR... |
||||||||||||||||
|
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |
|||||||||||||||||


FTP FileUpload via WININET.DLL


