IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment ajouter une pièce jointe à un message en code visual basic


Sujet :

VB.NET

  1. #1
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut Comment ajouter une pièce jointe à un message en code visual basic
    Bonjour,

    J'ai construit un formulaire pour recueillir des renseignements à envoyer par Internet.

    Ce formulaire fonctionne bien.

    Cependant, j'aimerais que l'internaute puisse ajouter une pièce jointe à partir de son poste de travail.

    Aussi, ai-je ajouté à mon formulaire un contrôle FileUpload avec son bouton "Parcourir" pour la sélection du fichier à joindre.

    Ma difficulté: je n'arrive pas à compléter ce code :
    (je vous joins aussi un échantillon de capture d'écran du formulaire)

    Merci d'avance pour vos réponses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Imports System.Net.Mail
    Imports System.IO
    Imports System.Net.Mime
     
    Partial Class Mail_Default
        Inherits System.Web.UI.Page
     
        Protected Sub btnEnvoyer_Click(sender As Object, e As System.EventArgs) Handles btnEnvoyer.Click
            ' Construction du message qui contient un TextBox Nom, TextBox Prénom, TextBox Email et TextBox Commentaire
                    ' txtMail.Text contient l'adresse Mail de l'expéditeur
                    ' "contact@monsite.com" est le destinataire (le webmaster du site www.@monsite.com)
     
                    Dim message As New System.Net.Mail.MailMessage(txtMail.Text, "webmaster@monsite.com")
                    'l'objet du message
                    message.Subject = "[Demande d'informations]"
                    'le corps du message
                    message.Body = "[Demande transmise par le site www.monsite.com]" _
                       & vbCr & txtNom.Text.ToUpper _
                       & vbCr & txtPrenom.Text _
                       & vbCr & txtMail.Text _
                       & vbCr & txtCommentaire.Text
     
     
                    Dim Fichier As String = ""
                    ' Créer le fichier à joindre avec le message .
                    Dim data As New Attachment(Fichier, MediaTypeNames.Application.Octet)
                    ' Ajouter les propriétés du fichier.
                    Dim disposition As ContentDisposition = data.ContentDisposition
                    disposition.CreationDate = System.IO.File.GetCreationTime(Fichier)
                    disposition.ModificationDate = System.IO.File.GetLastWriteTime(Fichier)
                    disposition.ReadDate = System.IO.File.GetLastAccessTime(Fichier)
                    ' Add the file attachment to this e-mail message.
                    message.Attachments.Add(data)
     
     
            Dim cheminPieceJointe As FileUpload = fileUploadChemin
            'Comment concertir ce FileUpload en String ?
            'Comment sauver le chemin du fichier contenu dans cet FileUpload ,
     
     
                    'Envoi du message
                    Dim smtp As New SmtpClient
                    smtp.Host = "localhost"
            smtp.Send(message)
            ' comment ajouter ici l'envoi de la pièce jointe ?
     
            Try
                smtp.Send(message)
            Catch ex As Exception
                Console.WriteLine("Exception(): {0}", ex.ToString())
            End Try
     
     
            ' Afficher les proprités de la pièce jointe.
            Dim cd As ContentDisposition = data.ContentDisposition
            Console.WriteLine("Content disposition")
            Console.WriteLine(cd.ToString())
            Console.WriteLine("File {0}", cd.FileName)
            Console.WriteLine("Size {0}", cd.Size)
            Console.WriteLine("Creation {0}", cd.CreationDate)
            Console.WriteLine("Modification {0}", cd.ModificationDate)
            Console.WriteLine("Read {0}", cd.ReadDate)
            Console.WriteLine("Inline {0}", cd.Inline)
            Console.WriteLine("Parameters: {0}", cd.Parameters.Count)
            For Each d As DictionaryEntry In cd.Parameters
                Console.WriteLine("{0} = {1}", d.Key, d.Value)
            Next
            data.Dispose()
        End Sub
    End Class
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    J'ai trouvé ça sur le net, en adaptant un peu à ton cas ça devrait faire l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim myMail As System.Web.Mail.MailMessage = New System.Web.Mail.MailMessage() 
     
    myMail.From = "noone@nobody.com" 
    myMail.To = "someone@somewhere.com" 
    myMail.Subject = "Email with Attachment Demo" 
    myMail.Body = "This is the main body of the email" 
    Dim attachedFile As MailAttachment = New MailAttachment("C:\myattachment.zip") 
    myMail.Attachments.Add(attachedFile) 
    SmtpMail.Send(myMail)

  3. #3
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Shadam Voir le message
    J'ai trouvé ça sur le net, en adaptant un peu à ton cas ça devrait faire l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim myMail As System.Web.Mail.MailMessage = New System.Web.Mail.MailMessage() 
     
    myMail.From = "noone@nobody.com" 
    myMail.To = "someone@somewhere.com" 
    myMail.Subject = "Email with Attachment Demo" 
    myMail.Body = "This is the main body of the email" 
    Dim attachedFile As MailAttachment = New MailAttachment("C:\myattachment.zip") 
    myMail.Attachments.Add(attachedFile) 
    SmtpMail.Send(myMail)
    bonsoir,

    Merci pour tes recherches sur internet, et qui vont nous permettre de progresser.

    J'ai modifié un peu ton code en fonction des nouveautés du FrameWork ce qui me donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Imports System.Net.Mail
    Imports System.Net.Mail.Attachment
    Imports System.Web.Mail
     
     
    Partial Class membres_Default
        Inherits System.Web.UI.Page
     
        Protected Sub btnEnvoyer_Click(sender As Object, e As System.EventArgs) Handles btnEnvoyer.Click
            'déclaration de l'objet Message 
            'myMail.From = "noone@nobody.com" 
            'myMail.To = "someone@somewhere.com"
            'Ici MyMail.from correspond à "abcd@mon site.com" (Nouvelles normes du FrameWork)
            'Ici MyMail.to correspond à "efgh@monsite.com" (Nouvelles normes du FrameWork)
            '-----------------------------------------------------------------------------------
            'déclaration de l'objet Message  avec l'adresse de l'expéditeur , suivie de celle du destinataire
            'l'adresse de l'expéditeur peut être remplacée par :txtMail.Text
            Dim myMail As New System.Net.Mail.MailMessage("abcd@monsite.com", "efgh@monsite.com")
     
            '---------------------------------------------------------------------------------------------------
            myMail.Subject = "Email with Attachment Demo"
            myMail.Body = txtNom.Text & txtPrenom.Text & txtMail.Text ' Ce qui correspond à "This is the main body of the email"
            '--------------------------------------------------------------------------------------------------
            'Anciennement Dim attachedFile As MailAttachment = New MailAttachment("C:\myattachment.zip") 
            'Correspond à:
            Dim attachedFile As New System.Net.Mail.Attachment("C:\myattachment.zip")
            myMail.Attachments.Add(attachedFile)
            '----------------------------------------------------------------------------------------------
            Dim smtp As New SmtpClient
            smtp.Host = "localhost"  ' Ou bien smtp.Host ="smtp.orange.fr", si le test s'effectue sur l'ordinateur à la maison
            '-------------------------------
            smtp.Send(myMail)   'au lieu de  'SmtpMail.Send(myMail)
     
        End Sub
    End Class
    Et comme je m'y attendais, car on n' a pas tenu compte du contrôle FileUpload, j'ai l'erreur "fatale suivante".Il faut importer le sytem IO et peut même plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Impossible de trouver le fichier 'C:\myattachment.zip'. 
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. 
     
    Détails de l'exception: System.IO.FileNotFoundException: Impossible de trouver le fichier 'C:\myattachment.zip'.
     
    Erreur source: 
     
    Ligne 24 :         'Anciennement Dim attachedFile As MailAttachment = New MailAttachment("C:\myattachment.zip") 
    Ligne 25 :         'Correspond à:
    Ligne 26 :         Dim attachedFile As New System.Net.Mail.Attachment("C:\myattachment.zip")
    Ligne 27 :         myMail.Attachments.Add(attachedFile)
    Ligne 28 :
    Je vais importer le System.IO et remplacer ("C:\myattachment.zip"), par
    (" "), ou bien par l'équivalent du contrôle FileUpLoad
    Le problème est que je ne vois pas comment je vais convertir le contenu du contrôle FileUpload en String

    A +

  4. #4
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    Citation Envoyé par Publicnew Voir le message
    Bonjour,

    J'ai construit un formulaire pour recueillir des renseignements à envoyer par Internet.

    Ce formulaire fonctionne bien.

    Cependant, j'aimerais que l'internaute puisse ajouter une pièce jointe à partir de son poste de travail.

    Aussi, ai-je ajouté à mon formulaire un contrôle FileUpload avec son bouton "Parcourir" pour la sélection du fichier à joindre.
    Ma difficulté : je n'arrive pas à completer le code au niveau de la section du contrôle FileUpload, dont l'ID dans le code est fileUpLparcourir.

    voici mon nouveau code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Imports System.Net.Mail
    Imports System.Net.Mail.Attachment
    Imports System.Web.Mail
    Imports System.IO
     
     
     
    Partial Class membres_Default
        Inherits System.Web.UI.Page
     
        Protected Sub btnEnvoyer_Click(sender As Object, e As System.EventArgs) Handles btnEnvoyer.Click
            'déclaration de l'objet Message  avec l'adresse de l'expéditeur , suivie de celle du destinataire
            'l'adresse de l'expéditeur peut être remplacée par :txtMail.Text
            Dim myMail As New System.Net.Mail.MailMessage("abcd@monsite.com", "efgh@monsite.com")
     
            '---------------------------------------------------------------------------------------------------
            myMail.Subject = "Email with Attachment Demo"
            myMail.Body = txtNom.Text & txtPrenom.Text & txtMail.Text ' Ce qui correspond à "This is the main body of the email"
            '--------------------------------------------------------------------------------------------------
     
            'Indiquer le nom du fichier à joindre dans le contrôle fileUpLparcourir
            Dim NomFichier As String = fileUpLParcourir.FileName
            'Sauver le nom du fichier
            fileUpLParcourir.SaveAs(NomFichier)
            'Le problème de la racine du fichier à joindre se situe ici
     
     
            '------------------------------------------------------------------------------------------------------
            'Ajouter le nom du fichier à joindre  à l'objet Mail.Attachment
            Dim attachedFile As New System.Net.Mail.Attachment(NomFichier)
            myMail.Attachments.Add(attachedFile)
            '----------------------------------------------------------------------------------------------
            'Envoyer le mail avec la pièce attachée
            Dim smtp As New SmtpClient
            smtp.Host = "localhost"  ' Ou bien smtp.Host ="smtp.orange.fr", si le test s'effectue sur l'ordinateur à la maison
            '-------------------------------
            smtp.Send(myMail)
     
        End Sub
    End Class
    Et voici l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    La méthode SaveAs est configurée pour nécessiter un chemin d'accès associé à une racine, et le chemin d'accès 'annexe_tarifaire_orange.pdf' n'est pas associé à une racine. 
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. 
     
    Détails de l'exception: System.Web.HttpException: La méthode SaveAs est configurée pour nécessiter un chemin d'accès associé à une racine, et le chemin d'accès 'annexe_tarifaire_orange.pdf' n'est pas associé à une racine.
     
    Erreur source: 
     
    Ligne 36 :         '------------------------------------------------------------------------------------------------------
    Ligne 37 :         Dim NomFichier As String = fileUpLParcourir.FileName
    Ligne 38 :         fileUpLParcourir.SaveAs(NomFichier)
    Ligne 39 : 
    Ligne 40 :

  5. #5
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Ton message est explicite pourtant.
    Il ne te manque pas de chemin racine ? (ex: C:\blabla\annexe_tarifaire_orange.pdf)

    Tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Imports System.Net.Mail
    Imports System.Net.Mail.Attachment
    Imports System.Web.Mail
    Imports System.IO
     
     
     
    Partial Class membres_Default
        Inherits System.Web.UI.Page
     
        Protected Sub btnEnvoyer_Click(sender As Object, e As System.EventArgs) Handles btnEnvoyer.Click
            'déclaration de l'objet Message  avec l'adresse de l'expéditeur , suivie de celle du destinataire
            'l'adresse de l'expéditeur peut être remplacée par :txtMail.Text
            Dim myMail As New System.Net.Mail.MailMessage("abcd@monsite.com", "efgh@monsite.com")
     
            '---------------------------------------------------------------------------------------------------
            myMail.Subject = "Email with Attachment Demo"
            myMail.Body = txtNom.Text & txtPrenom.Text & txtMail.Text ' Ce qui correspond à "This is the main body of the email"
            '--------------------------------------------------------------------------------------------------
     
            'Indiquer le nom du fichier à joindre dans le contrôle fileUpLparcourir
    Dim racine as string = "C:\blabla\"
            Dim NomFichier As String = fileUpLParcourir.FileName
            'Sauver le nom du fichier
            fileUpLParcourir.SaveAs(racine + NomFichier)
            'Le problème de la racine du fichier à joindre se situe ici
     
     
            '------------------------------------------------------------------------------------------------------
            'Ajouter le nom du fichier à joindre  à l'objet Mail.Attachment
            Dim attachedFile As New System.Net.Mail.Attachment(NomFichier)
            myMail.Attachments.Add(attachedFile)
            '----------------------------------------------------------------------------------------------
            'Envoyer le mail avec la pièce attachée
            Dim smtp As New SmtpClient
            smtp.Host = "localhost"  ' Ou bien smtp.Host ="smtp.orange.fr", si le test s'effectue sur l'ordinateur à la maison
            '-------------------------------
            smtp.Send(myMail)
     
        End Sub
    End Class
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  6. #6
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Ton message est explicite pourtant.
    Il ne te manque pas de chemin racine ? (ex: C:\blabla\annexe_tarifaire_orange.pdf)

    Tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Imports System.Net.Mail
    Imports System.Net.Mail.Attachment
    Imports System.Web.Mail
    Imports System.IO
     
     
     
    Partial Class membres_Default
        Inherits System.Web.UI.Page
     
        Protected Sub btnEnvoyer_Click(sender As Object, e As System.EventArgs) Handles btnEnvoyer.Click
            'déclaration de l'objet Message  avec l'adresse de l'expéditeur , suivie de celle du destinataire
            'l'adresse de l'expéditeur peut être remplacée par :txtMail.Text
            Dim myMail As New System.Net.Mail.MailMessage("abcd@monsite.com", "efgh@monsite.com")
     
            '---------------------------------------------------------------------------------------------------
            myMail.Subject = "Email with Attachment Demo"
            myMail.Body = txtNom.Text & txtPrenom.Text & txtMail.Text ' Ce qui correspond à "This is the main body of the email"
            '--------------------------------------------------------------------------------------------------
     
            'Indiquer le nom du fichier à joindre dans le contrôle fileUpLparcourir
    Dim racine as string = "C:\blabla\"
            Dim NomFichier As String = fileUpLParcourir.FileName
            'Sauver le nom du fichier
            fileUpLParcourir.SaveAs(racine + NomFichier)
            'Le problème de la racine du fichier à joindre se situe ici
     
     
            '------------------------------------------------------------------------------------------------------
            'Ajouter le nom du fichier à joindre  à l'objet Mail.Attachment
            Dim attachedFile As New System.Net.Mail.Attachment(NomFichier)
            myMail.Attachments.Add(attachedFile)
            '----------------------------------------------------------------------------------------------
            'Envoyer le mail avec la pièce attachée
            Dim smtp As New SmtpClient
            smtp.Host = "localhost"  ' Ou bien smtp.Host ="smtp.orange.fr", si le test s'effectue sur l'ordinateur à la maison
            '-------------------------------
            smtp.Send(myMail)
     
        End Sub
    End Class
    Bonjour, et merci pour ta réponse.

    Cependant, je ne vois comment peut-on indiquer au système d'aller chercher la racine à ''C:\blabla\annexe_tarifaire_orange.pdf", même s'il s'agit d'un String.

    Par exemple, si je voulais que l'internaute écrive directement dans un dossier nommé FichiersRecus sur le serveur lui-même, le chemin serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim DossierSurServeur As String = Me.MapPath.("~/FichiersRecus/")
    Seulement, je veux que l'internaute envoie son fichier en pièceattachée, et qui sera reçue plutôt sur le Webbmail de mon site, avec le mail lui-même, et non sur le disque lui-même (avec la méthode ci-dessus décrite), et cela pour des raisons de sécutité évidentes.

    Donc il faut un mot-clé réservé de Visual Basicpour indiquer la racine, du style: directory ou autres.

  7. #7
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Je comprend -un petit peu mieux- ce que tu veux faire ...

    Est-ce que FullName pourrait t'aider ?

    Tu veux récupérer quoi ? Le Path du client ? Je suis un petit peu perdu par ce que tu cherches à faire ...
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  8. #8
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Je comprend -un petit peu mieux- ce que tu veux faire ...

    Est-ce que FullName pourrait t'aider ?

    Tu veux récupérer quoi ? Le Path du client ? Je suis un petit peu perdu par ce que tu cherches à faire ...
    Oui, en effet, lorsque le chemin du fichier est récupéré dans le contrôle FileUpLoad qui s'appelle dans mon application flpUpLoadParcourir, ile faut que ce contrôle l'ajoute, et le sauve pour l'attacher au message à envoyer

    Par exemple dans l'image ci-jointe:

    le chemin dans le contrôle flupLParcourir est C:\Annexe_tarifaire_orange.pdf

    et c'est ce chemin qui doit être reconnu, sauvé et envoyé lorsque l'internaute clique sur le bouton Envoyer.
    Images attachées Images attachées  

  9. #9
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Au temps pour moi, j'ai pas l'habitude des WebControls et OpenFileDialog sous winforms retourne le chemin complet avec OpenFileDialog.FileName(), et apparemment pas avec ton control.


    Sinon sur Google tu trouves beaucoup d'exemples d'envoi de mails avec pièces jointes depuis un control FileUpload (Voir ici)

    Et la plupart récupère le path avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
      Dim myAttachment As New Attachment(FileUpload1.FileContent, fileName)
      myMailMessage.Attachments.Add(myAttachment)
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  10. #10
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Sinon sur Google tu trouves beaucoup d'exemples d'envoi de mails avec pièces jointes depuis un control FileUpload (Voir ici)

    Et la plupart récupère le path avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
      Dim myAttachment As New Attachment(FileUpload1.FileContent, fileName)
      myMailMessage.Attachments.Add(myAttachment)
    Bonsoir Ez3kiel,


    Ça y est : tu as trouvé la solution, et je te remercie pour tout le temps que tu as consacré pour m'aider à régler cette difficulté.

    Merci également à Shadam qui nous a bien orienté dès le début.

    Voici le code vb.net qui permet l'envoi d'une pièce jointe avec un formulaire en asp.net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Imports System.Net.Mail
    Imports System.IO
     
    Partial Class Default4
        Inherits System.Web.UI.Page
     
        Protected Sub btnEnvoyer_Click(sender As Object, e As System.EventArgs) Handles btnEnvoyer.Click
            'Si vous avez introduit des contrôles de validation (RequiredFieldValidator)
            Me.Validate()
            If Me.IsValid Then
                Try
     
                    Dim myMail As New System.Net.Mail.MailMessage(txtEmail.Text, "contact@monsite.fr")
                    myMail.Subject = "[Mon Site infos ] Contact"
                    myMail.Body = "[Contact Transmis par Mon Site]" _
                       & vbCr & lblNom.Text & txtNom.Text.ToUpper _
                           & vbCr & lblPrenom.Text & txtPrenom.Text _
                     & vbCr & lblEmail.Text & txtEmail.Text
     
     
                    Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
                    Dim myAttachment As New Attachment(FileUpload1.FileContent, fileName)
                    myMail.Attachments.Add(myAttachment)
     
     
                    'Envoi du message
                    Dim smtp As New SmtpClient
     
                    smtp.Host = "localhost"  ' ou bien: smtp.Host ="smpt.orange.fr"  si test en local et le F.A.I est Orange
                    smtp.Send(myMail)
     
     
     
                Catch ex As Exception
                    lblMessageErreur.Visible = True
                    lblMessageErreur.Text = "La page a rencontré une erreur.Vos données n'ont pas été envoyées !"
                End Try
            End If
        End Sub
     
        Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            lblMessageErreur.Visible = False
        End Sub
    End Class
    Voici le code le page aspx
    qui permet l'envoi d'une pièce jointe avec un formulaire en asp.net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Email_Et_Piece_Jointe_.aspx.vb" Inherits="Default4" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <style type="text/css">
            .style1
            {
                color: #CC0000;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div style="background-color: #00CC99">
            <span class="style1"><strong>Attacher une pièce jointe à un formulaire web en asp.net</strong></span><br />
    <asp:Label ID="lblNom" runat="server" style="font-weight: 700" Text="Nom"></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtNom" runat="server" style="background-color: #FFFFCC"></asp:TextBox>
            <br />
            <asp:Label ID="lblPrenom" runat="server" style="font-weight: 700" Text="Prénom"></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtPrenom" runat="server" style="background-color: #FFFFCC"></asp:TextBox>
            &nbsp;&nbsp;&nbsp;
            <br />
    <asp:Label ID="lblEmail" runat="server" style="font-weight: 700" Text="Email"></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtEmail" runat="server" style="background-color: #FFFFCC"></asp:TextBox>
            <br />
            <br />
            <asp:Label ID="lblJoindreFichier" runat="server" style="font-weight: 700" 
                Text="Joindre un fichier"></asp:Label>
    &nbsp;<asp:FileUpload ID="FileUpload1" runat="server" 
                style="background-color: #FFCC00" />
     
            <br />
            <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:Button ID="btnEnvoyer" runat="server" Height="23px" Text="Envoyer" 
                Width="126px" />
            <asp:Label ID="lblMessageErreur" runat="server" Font-Italic="True" 
                Text="lblMessageErreur"></asp:Label>
     
        </div>
        </form>
    </body>
    </html>
    Et voici un petit échantillon que j'ai fait pour illustrer un bout de page en mode Design (avec Visual Web Developer Express):
    Images attachées Images attachées  

  11. #11
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    De rien et merci de pour ta source.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SP-2010] Ajouter une pièce jointe à un élément de liste dans SharePoint 2010
    Par dhiaeddine2012 dans le forum SharePoint
    Réponses: 0
    Dernier message: 05/12/2012, 14h56
  2. Comment ajouter des pièces jointes
    Par gmnembot dans le forum Access
    Réponses: 1
    Dernier message: 06/12/2010, 12h59
  3. Réponses: 7
    Dernier message: 31/03/2010, 23h12
  4. Comment enregistrer une pièce jointe d'un mail ?
    Par forum_75 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 24/02/2009, 08h51
  5. Comment insérer une piéce jointe
    Par maiza_med dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 8
    Dernier message: 03/06/2008, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo