J'ai ce code de travail de ce Lien , pour télécharger un fichier à Un site FTP:
' 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()
6 Réponses :
En regardant le MSDN Documentation Ceci carte à la Commande de magasin FTP. En regardant la définition de la commande FTP START, il écrasera les fichiers existants si l'utilisateur dispose d'autorisations. P>
Donc, dans ce cas, oui, le fichier serait écrasé. P>
de: lien p>
Store (Store) P>
START P>
Cette commande provoque l'acceptation du serveur FTP d'accepter les données transférées via la connexion de données et de stocker les données sous forme de fichier sur le serveur FTP. Si le fichier spécifié dans PathName existe sur le site du serveur, son contenu doit être remplacé par les données transférées. Un nouveau fichier est créé sur le serveur FTP si le fichier spécifié dans PathName n'existe pas déjà. p>
Lorsqu'une opération d'écriture de fichier est invitée à écrire un fichier sur un pointeur, il ne vérifiera pas si le fichier existe; Simplement, le système de fichiers permettra au fonctionnement de continuer à moins que les octets en mémoire soient utilisés ( Si vous souhaitez vérifier si un fichier existe avant d'écrire le fichier utilise ma méthode getdirectory dans vb.net ici: https: // Stackoverflow.com/a/28664731/2701974 p>
Utilisez cette fonction pour télécharger le fichier
Sous-uploadfile publique (byval _filename en tant que chaîne, byval _uploadpath en tant que chaîne, byval _ftpuser en tant que chaîne, byval _ftpasser en tant que chaîne) P>
DIM _fileinfo comme nouveau système.IO .FileInfo (_filename) p>
' Create FtpWebRequest object from the Uri provided
Dim _FtpWebRequest As System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(New Uri(_UploadPath)), System.Net.FtpWebRequest)
' Provide the WebPermission Credintials
_FtpWebRequest.Credentials = New System.Net.NetworkCredential(_FTPUser, _FTPPass)
' By default KeepAlive is true, where the control connection is not closed
' after a command is executed.
_FtpWebRequest.KeepAlive = False
' set timeout for 20 seconds
_FtpWebRequest.Timeout = 20000
' Specify the command to be executed.
_FtpWebRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' Specify the data transfer type.
_FtpWebRequest.UseBinary = True
' Notify the server about the size of the uploaded file
_FtpWebRequest.ContentLength = _FileInfo.Length
' The buffer size is set to 2kb
Dim buffLength As Integer = 2048
Dim buff(buffLength - 1) As Byte
' Opens a file stream (System.IO.FileStream) to read the file to be uploaded
Dim _FileStream As System.IO.FileStream = _FileInfo.OpenRead()
Try
' Stream to which the file to be upload is written
Dim _Stream As System.IO.Stream = _FtpWebRequest.GetRequestStream()
' Read from the file stream 2kb at a time
Dim contentLen As Integer = _FileStream.Read(buff, 0, buffLength)
' Till Stream content ends
Do While contentLen <> 0
' Write Content from the file stream to the FTP Upload Stream
_Stream.Write(buff, 0, contentLen)
contentLen = _FileStream.Read(buff, 0, buffLength)
Loop
' Close the file stream and the Request Stream
_Stream.Close()
_Stream.Dispose()
_FileStream.Close()
_FileStream.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message, "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Oui, le protocole FTP écrase les fichiers existants sur le téléchargement.
Notez qu'il existe de meilleurs moyens de mettre en œuvre le téléchargement. p>
le moyen le plus trivial pour télécharger un fichier binaire sur un serveur FTP sur un serveur FTP. Utilisation de .NET Framework utilise Si vous avez besoin d'un contrôle plus important, que Si vous devez surveiller une progression de téléchargement, vous devez copier Le contenu en morceaux vous-même: p> pour GUI Progress (WinForms si vous souhaitez télécharger tous les fichiers D'un dossier, voir l'exemple C # à webclient.uploadfile code> : p> WebClient code> n'offre pas (comme TLS/ssL Encryption , mode de transfert ASCII / texte, mode actif, transfert de reprise, etc.), utilisez ftpwebrequest code> . Un moyen facile consiste simplement à copier un filtream code> au flux FTP à l'aide de flux.copyto code> : p> ProgressBar code>), voir Exemple C # à:
Comment montrer la barre de progression pour le téléchargement avec FTPWebRequest p>
Télécharger le répertoire des fichiers sur FTP serveur à l'aide de WebClient . p> p>
Cette réponse est pefect, une bonne addition, c'est comment créer des répertoires sur votre FTP: Stackoverflow.com/questions/9031336/...
WebClient.Downloadfile d'occasion, qui est similaire, pour télécharger un fichier à partir d'un site FTP et fonctionne également également. Upvoted, merci.
Ceci est le code de travail pour télécharger des fichiers sur un serveur FTP