Bonsoir,
J'ai finalament utilisé ce code pour uploader mes fichiers :
Private Sub uploadFichier(ByVal cheminSource As String, _
ByVal urlDestination As String, _
ByVal identifiant As String, _
ByVal motDePasse As String)
' cheminSource : Uri du fichier sur le disque dur
' urlDestination : Uri du fichier de destination sur le serveur FTP
' identifiant : login du compte FTP utilisé
' motDePasse : mot de passe du compte FTP utilisé
Dim monUriFichierLocal As System.Uri = Nothing
Dim monUriFichierDistant As System.Uri = Nothing
' Vérification de la validité de l'Uri de l'emplacement du fichier source
If Not (monUriFichierLocal.Scheme = Uri.UriSchemeFile) Then
MessageBox.Show("Le chemin du fichier local n'est pas valide !", "Une _
erreur est survenue", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
' Vérification de la validité de l'Uri de l'emplacement du fichier de destination
If Not (monUriFichierDistant.Scheme = Uri.UriSchemeFtp) Then
MessageBox.Show("Le chemin du fichier sur le serveur FTP n'est pas _
valide !", "Une erreur est surevnue", MessageBoxButtons.OK, _
MessageBoxIcon.Warning)
Exit Sub
End If
' Création des 2 flux et du reader nécessaire pour l'envoi du fichier
Dim monRequestStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim uploadResponse As FtpWebResponse = Nothing
Try
' Requête d'upload d'un fichier vers le serveur
Dim uploadRequest As FtpWebRequest = CType(WebRequest_
.Create(urlDestination), FtpWebRequest)
' Vérification de la présence des identifiants d'un compte, si aucun alors
' la connexion se fait en mode anonyme
If Not identifiant.Length = 0 Then
Dim monCompte As New NetworkCredential(identifiant, motDePasse)
uploadRequest.Credentials = monCompte
End If
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile
' Désactivation du proxy http incompatible avec cette requête
uploadRequest.Proxy = Nothing
monRequestStream = uploadRequest.GetRequestStream()
fileStream = File.Open(cheminSource, FileMode.Open)
' Tableau d'octets qui va contenir les données issues du fichier
Dim buffer(1024) As Byte
Dim bytesRead As Integer
' Lecture des données et envoi de celle-ci dans le flux
While True
bytesRead = fileStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
' Ecriture des données dans le flux d'upload vers le serveur FTP
monRequestStream.Write(buffer, 0, bytesRead)
End While
'L'objet requestStream dot être fermé avant de récupérer la réponse
monRequestStream.Close()
uploadResponse = CType(uploadRequest.GetResponse(), FtpWebResponse)
MessageBox.Show("Upload terminé.")
' Gestion des exceptions
Catch ex As UriFormatException
MessageBox.Show(ex.Message)
Catch ex As WebException
MessageBox.Show(ex.Message)
Catch ex As IOException
MessageBox.Show(ex.Message)
Finally
' Fermeture des différents flux utilisés
If uploadResponse IsNot Nothing Then
uploadResponse.Close()
End If
If fileStream IsNot Nothing Then
fileStream.Close()
End If
If monRequestStream IsNot Nothing Then
monRequestStream.Close()
End If
End Try
End Sub
Mais sa bloque a
If Not (monUriFichierLocal.Scheme = Uri.UriSchemeFile) Then
Le message d'erreur dit :"La référence d'objet n'est pas définie à une instance d'un objet."
J'ai trouvé ce code ici : Lien
(et j'ai aussi utilisé le code présent sur la page pour lister mes fichiers.)
Auriez vous une solution ?
Merci d'avance a+