Upload Datei-FTP-site verwenden VB.NET
Habe ich diesen funktionierenden code aus diesem link, zum hochladen einer Datei in einer ftp-site:
' set up request...
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create("ftp://ftp.myserver.com/test.txt"), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential("myusername", "mypassword")
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' read in file...
Dim bFile() As Byte = System.IO.File.ReadAllBytes("C:\Temp\test.txt")
' upload file...
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
Frage ich mich, wenn die Datei bereits vorhanden ist, in dem ftp-Verzeichnis die Datei überschrieben werden?
- warum lässt du nicht einfach versuchen?
- so weit kann ich nicht löschen/update in den ftp, ich will nur gehen Sie voran und sehen, was passieren würde, in diesem Fall.
- Seltsam, ich baute meine eigenen Datei-upload basiert auf dem code und ich bekam eine WebException (530) Nicht angemeldet...
- Ah ja, würde es helfen, wenn ich das Passwort in meinem NetworkCredential Recht
- Das ist richtig @Ortund
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf die MSDN Dokumentation dieser maps auf den FTP-STOR-Befehl. Blick auf die definition für den FTP-STOR-Befehl zum überschreiben von bestehenden Dateien, wenn der Benutzer Berechtigungen hat.
So, in diesem Fall ja die Datei überschrieben würde.
Aus: Link
STOR (LADEN)
STOR
Dieser Befehl bewirkt, dass der FTP-server akzeptiert die übertragenen Daten werden über die Daten-Verbindung und zum speichern der Daten als Datei auf dem FTP-server. Wenn die angegebene Datei in Pfadnamen besteht auf der server-Seite, wird der Inhalt ersetzt durch die Daten übertragen werden. Eine neue Datei wird auf dem FTP-server wenn die angegebene Datei im Pfadnamen nicht bereits vorhanden ist.
Ja, das FTP-Protokoll überschreibt die vorhandenen Dateien auf upload.
Hinweis, dass es bessere Wege zur Umsetzung der upload.
Der einfachste Weg zum hochladen eines binären Datei auf einen FTP-server verwenden .NET framework wird mit
WebClient.UploadFile
:Wenn Sie brauchen eine stärkere Kontrolle, dass
WebClient
nicht bieten (wie TLS/SSL-Verschlüsselung, etc.), verwenden SieFtpWebRequest
. Einfach nur kopierenFileStream
FTP-stream mitStream.CopyTo
:Wenn Sie brauchen, um zu überwachen, eine upload-Fortschritt, Sie zu kopieren Sie den Inhalt von Blöcken selbst:
Zur GUI-progress (WinForms
ProgressBar
), die C# - Beispiel unter:Wie können wir zeigen Fortschrittsbalken für den upload mit FtpWebRequest
Wenn Sie möchten, laden Sie alle Dateien aus einem Ordner finden Sie unter C# - Beispiel
Verzeichnis hochladen von Dateien per WebClient.
Ist es wichtig zu wissen, dass,
Dateien werden nur Referenzen auf Zeiger, die auf ein array von bytes im Speicher.
Wenn eine Datei zu schreiben-Vorgang wird aufgefordert, eine Datei schreiben, um einen Zeiger, es wird nicht überprüfen, ob die Datei vorhanden ist; Einfach, die Datei-system wird es ermöglichen, den Betrieb fortsetzen, wenn die bytes im Speicher verwendet werden (obwohl Sie force overwrite).
Wenn Sie möchten, um zu überprüfen, ob eine Datei vorhanden ist, bevor das schreiben der Datei verwenden, meine Methode GetDirectory in VB.net hier: https://stackoverflow.com/a/28664731/2701974
Verwenden Sie Diese Funktion, um die Datei Hochladen
Public Sub UploadFile(ByVal _FileName As String, ByVal _UploadPath As String, ByVal _FTPUser As String, ByVal _FTPPass As String)
Dim _FileInfo Als Neues System.IO.FileInfo(_FileName)
End Sub
WIE ZU VERWENDEN:
' Datei hochladen mit FTP
UploadFile("c:\UploadFile.doc", "ftp://FTPHostName/UploadPath/UploadFile.doc", "UserName", "Passwort")
dies ist der Arbeitscode hochladen von Dateien auf einen FTP-server