FAQ ASP.NET/VB.NET

FAQ ASP.NET/VB.NETConsultez toutes les FAQ
Nombre d'auteurs : 38, nombre de questions : 369, dernière mise à jour : 16 juin 2021
Sommaire→Coté serveur et C#→Transferts FTPOn pourra utiliser la méthode suivante :
Sélectionnez
Public Shared Function FtpDownload(ByVal uri As Uri, ByVal credentials As NetworkCredential, ByVal dirInfo As DirectoryInfo) As FileInfo
Dim fi As FileInfo
Dim request As FtpWebRequest = DirectCast(WebRequest.Create(uri), FtpWebRequest)
request.Credentials = credentials
request.UseBinary = True
request.Method = WebRequestMethods.Ftp.DownloadFile
'Utilisé pour envoyer la commande "QUIT" au serveur afin de fermer correctement la connexion
request.KeepAlive = False
' Taille du tableau servant à stocker les morceaux du fichier.
' On épargne ainsi les ressources du serveur en ne chargeant pas la totalité du fichier.
' Cela permet de transférer rapidement des fichiers volumineux.
Dim buffer As Byte() = New Byte(2047) {}
' Variable de mesure de la taille du morceau de fichier lu. Permet d'indiquer que le fichier a été lu et écrit en totalité.
' Recupération de la réponse
Using res As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
fi = New FileInfo(String.Concat(dirInfo.FullName, uri.Segments(uri.Segments.Length - 1)))
Using stream As New BinaryReader(res.GetResponseStream())
Using fs As FileStream = File.Create(fi.FullName, buffer.Length, FileOptions.WriteThrough)
' Ecriture du flux dans le fichier block par block
Dim block As Integer
While ((block = stream.Read(buffer, 0, buffer.Length)) > 0)
fs.Write(buffer, 0, block)
End While
End Using
End Using
End Using
Return fi
End Function
Public Shared Sub TestFtpDownload()
' exemple d'utilisation
FtpDownload(New Uri("ftp://hd1.freebox.fr/Disque dur/Enregistrements/test.txt"), _
New NetworkCredential("freebox", "000000"), _
New DirectoryInfo("C:\temp\"))
End SubOn pourra utiliser la méthode suivante :
Sélectionnez
Public Shared Function FtpUpload(ByVal uri As Uri, ByVal credentials As NetworkCredential, ByVal fileInfo As FileInfo) As Boolean
Dim request As FtpWebRequest = DirectCast(FtpWebRequest.Create(Path.Combine(uri.AbsoluteUri, fileInfo.Name)), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.UploadFile
request.Credentials = credentials
request.UseBinary = True
request.KeepAlive = False
request.UsePassive = True
Dim buffer As Byte() = New Byte(2047) {}
Using stream As Stream = request.GetRequestStream()
Using fs As FileStream = File.OpenRead(fileInfo.FullName)
Dim block As Integer
While ((block = fs.Read(buffer, 0, buffer.Length)) > 0)
stream.Write(buffer, 0, block)
End While
End Using
End Using
Return (True)
End Function
Public Shared Sub TestFtpUpload()
' exemple d'utilisation
FtpUpload(New Uri("ftp://hd1.freebox.fr/Disque dur/Enregistrements/"), _
New NetworkCredential("freebox", "000000"), _
New FileInfo("C:\temp\test.txt"))
End Sub


