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 22.760 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevZIP30 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Buchempfehlung Tipp des Monats Dieter Otter 2-dimensionales Array nach beliebiger Spalte sortieren Mit dieser Funktion lässt sich ein 2-dimensionales Array beliebiger Daten nach einer bestimmten Spalte sortieren Neu! sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. |
||||||||||||||||
|
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



