Uploader dans un repertoire variable sur FTP [Résolu]

Signaler
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013
-
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
-
Bonjour,
j'ai une appli qui génére un fichier .jpg dont le nommage est
contenu_de_textbox1 & "-" & contenu_de_textbox2 (nom-prenom.jpg)

et qui l'uploade via ftp selon les paramètres suivants :
Private localPath As String =  "\\nas\rep1\rep2\rep3\rep4" 'path du jpg a uploader
Private user As String = "monlogin"
Private password As String = "monpass"
Private ftpUrl As String = "ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/" 'path ou uploader le fichier


jusqu'ici je n'avais aucun probleme mais la donne a changée car le sous rep final d'upload n'est plus "fiches" mais un rep généré automatiquement a l'inscription de l'user sur le site. Il est de la forme nom_user-prenom_user

exemple :
Un user nommé Mélanie ZETAUFRAIS s'inscrit sur le site, un rep ZETAUFRAIS-Melanie est crée sur le ftp.
Si ce user utilise l'appli, un fichier ZETAUFRAIS-Melanie.jpg et mon but est d'uploader ZETAUFRAIS-Melanie.jpg dans "ftp://ftp.cluster006.ovh.net/www/jdownloads/ZETAUFRAIS-Melanie/"

Je ne risque pas de probleme de dossier inexistant car le user doit être enregistré avant de pouvoir utiliser l'appli
1 Seul fichier est autorisé par dossier donc pas de souci de doublon non plus.

Voila ce que j'ai fait sachant que ca cloche au niveau du rep d'upload (/fiches/). Je ne parviens pas a trouver la syntaxe pour dire /textbox1 & "-" & textbox2/
 Private Sub upload()
        Dim myDate As DateTime
        If Not (DateTime.TryParse(TxtDate.Text, myDate)) Then
            MessageBox.Show("Error")
            Exit Sub
        End If
        Dim fileName As String  = Txtnom.Text & "-" & txtPrenom.Text & ".jpeg"
        Dim requestFTPUploader As FtpWebRequest = DirectCast(WebRequest.Create("ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/" & fileName), FtpWebRequest)
        requestFTPUploader.Credentials = New NetworkCredential(user, password)
        requestFTPUploader.Method = WebRequestMethods.Ftp.UploadFile

        Dim fileInfo As New FileInfo(localPath & fileName)
        Dim fileStream As FileStream = fileInfo.OpenRead()

        Dim bufferLength As Integer = 2048
        Dim buffer As Byte() = New Byte(bufferLength - 1) {}

        Dim uploadStream As Stream = requestFTPUploader.GetRequestStream()
        Dim contentLength As Integer = fileStream.Read(buffer, 0, bufferLength)

        While contentLength <> 0
            uploadStream.Write(buffer, 0, contentLength)
            contentLength = fileStream.Read(buffer, 0, bufferLength)
        End While
        uploadStream.Close()
        fileStream.Close()
        requestFTPUploader = Nothing
    End Sub


Merci de prendre le temps de lire et d'eclairer ma lanterne

8 réponses

Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Dans ce cas
Dim fileName As String = Txtnom.Text & "-" & txtPrenom.Text & ".jpeg"
Dim requestFTPUploader As FtpWebRequest = DirectCast(WebRequest.Create("ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/" & Txtnom.Text & txtPrenom.Text &"/" ), FtpWebRequest)
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Oui, j'ai fais une erreur sorry.

Mais le path que nous voulons est :

ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/ZETAUFRAIS/

Ce qui remplace ton ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/ qui fonctionner très bien.

La partie constante est :
ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/

Txtnom.Text vaut le dossier de destination dans notre cas il vaut ZETAUFRAIS

Donc on concatène la partie constante avec la variable ce qui donne

ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/ & Txtnom.Text & "/"

Deux choses :

1) Ftp est sensible à la caste donc si le nom du dossier est en majuscule il faut être sur que Txtnom.Text le soit aussi.

2) je mets le "/" a la fin car tu la mis dant ton premier bout de code en disant que cela fonctionné

Si tu as des message d'erreur merci de les posters.
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Le dossier ftp de destination est :
ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/ZETAUFRAIS-Melanie

Ta variable fileName vaut "ZETAUFRAIS-Melanie.jpg"

Si j'ai bien évoluer la situation tu devrais changer ton code la façon suivante :

Dim fileName As String = Txtnom.Text & "-" & txtPrenom.Text
Dim requestFTPUploader As FtpWebRequest = DirectCast(WebRequest.Create("ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/" & fileName & "/"), FtpWebRequest)
fileName = fileName  & ".jpeg"
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013

bonjour 4you4me4us

Déjà le ftp de destination pour le user melanie zetaufrais est effectivement bon

mon filename c'est a dire mon .jpg est aussi le bon

maintenant je teste en situation et te remercie déjà de l'aide tournie
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013

ah me...de non j'ai ete un peu trop vite j'ai dit une betise initialement et qui change tout

en fait pour le cas melanie zetaufrais, le rep d'upload genere est txtnom uniquement donc
filename vaut ZETAUFRAIS-melanie
foldername vaut ZETAUFRAIS
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013

Dim requestFTPUploader As FtpWebRequest = DirectCast(WebRequest.Create("ftp://ftp.cluster006.ovh.net/www/jdownloads/fiches/" & Txtnom.Text & txtPrenom.Text &"/" ), FtpWebRequest)


euh pourrais tu exactement me dire ce que veut dire cette syntaxe, car je ne comprends pas pourquoi /fiches/ et " & txtprenom" sont encore présent dans le path ainsi que le et le pourquoi du &"/"
désolé mais mon expérience est un peu faible et du coup j'en profite pour essayer de comprendre
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013

non non je n'ai aucune erreur, en fait je comprenais mal la concatenation mais tout est fonctionnel a 100%
je te remercie de ton aide précieuse
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
De rien!

BON CODE