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

ASP.NET Discussion :

Mettre un upload dans un step de createUserWizard


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Mettre un upload dans un step de createUserWizard
    Bonjour tout le monde.

    Je rame un peu sur un truc un peu scabreux. J'ai mis un CreateUserWizard avec un WizardStep. En gros, j'ai fait comme ça :
    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
     
    <asp:CreateUserWizard ID="cuwRegister" runat="server">
                    <WizardSteps>
                    <asp:WizardStep ID="StepPerso" runat="server">
                        <asp:Table ID="tblCTCUW" runat="server">
                            <asp:TableRow>
                                <asp:TableCell>
                                    <asp:Label ID="lblDescription" runat="server"></asp:Label>
                                    <asp:TextBox ID="txtDescription" runat="server" MaxLength="10"></asp:TextBox>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow>
                                <asp:TableCell>
                                    <asp:Label ID="lblAvatar" runat="server"></asp:Label>
                                    <asp:FileUpload ID="flAvatar" runat="server" />
     
                                </asp:TableCell>
                            </asp:TableRow>
                        </asp:Table>
                    </asp:WizardStep>
                    </WizardSteps>
                    </asp:CreateUserWizard>
    Donc j'ai mis un FileUpload pour charger l'avatar du registrant.
    Et j'ai mis le code de gestion du FileUplaod sur le bouton du Step comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim appPath As String = Request.PhysicalApplicationPath
            Dim saveDir As String = "\App_Themes\"
                Dim savePath As String = appPath & saveDir & u.ProviderUserKey.ToString
                flAvatar.SaveAs(appPath & saveDir & u.ProviderUserKey.ToString)
                lblStatutupload.Text = ex.Message
    Sauf que j'ai du mal à voir pourquoi il me charge pas le fichier à l'endroit voulu (ni ailleurs du reste) et du coup, j'ai du mal à m'en dépatouiller.
    Je n'ai aucun message d'erreur, il passe au step final, sans broncher

    Pouvez vous m'aider ?

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    J'ai un peu avancé sur le problème et je découvre que le souci ne vient pas de la présence du CreateUserwizard, mais d'un UpdatePanel.

    Tout d'abords j'ai changé le CodeBehind par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click
            Dim u As MembershipUser = Membership.GetUser("zooffy")
            Dim appPath As String = Request.PhysicalApplicationPath
            Dim saveDir As String = "\App_Themes\"
            If flAvatar.HasFile Then
                Dim savePath As String = appPath & saveDir & u.ProviderUserKey.ToString
                flAvatar.SaveAs(appPath & saveDir & u.ProviderUserKey.ToString & ".jpg")
                lblStatutupload.Text = "ok"
            Else
                lblStatutupload.Text = "raté"
            End If
        End Sub
    Lorsque je suis dans la apge en direct, pas de souci, il me charge mon fichier (j'ai un souci sur son nomage, mais je traite cela aprés).
    Dés que je remets le CreateUserWizard dans un UpdatePanel (parce que je veux un effet spécial sur le formulaire d'inscription) il me mets "raté" dans le label prévu à cet effet.

    Alors, là, je sèche !

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    J'ai encore avancé, enfin, changé des choses on va dire.
    J'ai pris le parti de dissocier les deux pour être plus au carré :
    Côté HTML :
    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
     
    <ajax:UpdatePanel ID="upRegister" runat="server" ChildrenAsTriggers="true" UpdateMode="Always">
            <Triggers>
                <ajax:AsyncPostBackTrigger ControlID="lbjoin" EventName="Click" />
            </Triggers>
            <ContentTemplate>
                <div id="divFondRegister" runat="server" style="display:none;" class="FondOpaque">
                <div id="divDevantRegister" class="DivRegisterIn">
                                    <asp:FileUpload ID="flAvatar" runat="server" />
                                    <asp:Button ID="btnUpload" runat="server" Text="Carg" />
                                    <asp:Label ID="lblStatutupload" runat="server"></asp:Label>
                </div>
                </div>
            </ContentTemplate>
        </ajax:UpdatePanel>
    et CodeBehind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click
            Dim appPath As String = Request.PhysicalApplicationPath
            Dim saveDir As String = "\App_Themes\"
            If flAvatar.HasFile Then
                Dim savePath As String = appPath & saveDir & "toto.jpg"
                flAvatar.SaveAs(savePath)
                lblStatutupload.Text = "ok"
            Else
                lblStatutupload.Text = "raté"
            End If
        End Sub
    Donc là j'ai un "raté"

    Et si je mets ça à la place du If
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Try
                Dim savePath As String = appPath & saveDir & "toto.jpg" 'u.ProviderUserKey.ToString
                flAvatar.SaveAs(savePath)
                lblStatutupload.Text = "ok"
            Catch ex As Exception
                lblStatutupload.Text = "raté"
            End Try
    là il me mets un "ok" ! ! !

    J'y comprend rien. En gros, il dit que c'est pas un fichier (alors que si je ne suis pas dans le UpdatePanel, tout va bien) mais il ne lève aucune exception

    Je suis tout sec.

    Si vous avez une idée, un peu d'eau, une corde......

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Dans l'Ajax Control Toolkit, y a un contrôle permettant de faire de l'upload dans un update panel

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ah ben ouai, j'avais pas vu.
    Je mets ça en place, pour tester.

    Merci

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, ça marche super bien.

    Mais je rame pour trouver de la doc détaillée. Là je bloque pour trouver le moyen de tester le type du fichier et ne l'accepter que s'il est Gif ou JPG.

    J'ai bien trouvé une méthode GetType(), mais impossible de trouver la doc pour savoir ce qu'il y a dedans et la liste de type pour faire une comparaison.

    Si tu as un lien, je suis preneur. Le site officiel des toolkit ne donne rien, et pour l'instant les blog que je trouve ne parlent que d'une mise en place simple, sans test, sans bla bla.

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu veux bloquer avant l'envoi ou une fois le fichier sur le serveur?

  8. #8
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Je préferais avant l'envoi, c'est plus sûr. Là j'ai trouvé le moyen de reconnaitre le format du fichier, sa taille. Mais je n'arrive pas à faire apparaitre le message d'erreur.

    En gros je patauge et je trouve toujours pas de doc détaillée sur le sujet.

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Je préferais avant l'envoi, c'est plus sûr.
    Nop, c'est le contraire

    Citation Envoyé par zooffy Voir le message
    Là j'ai trouvé le moyen de reconnaitre le format du fichier, sa taille. Mais je n'arrive pas à faire apparaitre le message d'erreur.
    Un simple label ne fait pas l'affaire?

  10. #10
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Alors pour l'instant j'en suis là au niveau du 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
     
    Protected Sub afuCreateUser_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles afuCreateUser.UploadedComplete
            If afuCreateUser.PostedFile.ContentType = "image/gif" Or afuCreateUser.PostedFile.ContentType = "image/pjpeg" Then
                If afuCreateUser.PostedFile.ContentLength < 150000 Then
                    Dim u As MembershipUser = Membership.GetUser(cuwRegister.UserName, False)
                    afuCreateUser.SaveAs(Request.PhysicalApplicationPath & "\App_Themes\" & u.ProviderUserKey.ToString & ".jpg")
                    e.statusMessage = "Chargement de l'avatar réalisé."
                End If
                e.statusMessage = "Ce fichier est trop volumineux."
            Else
                e.statusMessage = "Ce format de fichier n'est pas autorisé."
            End If
            lblStatutupload.Text = e.statusMessage
     
        End Sub
    Donc je teste le format du fichier pour n'accepter que les GIF et les JPG et je test la taille pour ne prendre que les fichiers qui font 150 K max.

    Le label est posé dans le UpdatePanel en dehors du Step du CreateUserWizard. J'ai essayé dedans, mais ça marche pas.
    J'ai essayé de renseigner la propriété Text du Label en direct, ça amrche pas. Je me suis donc dis qu'il allait passer par le conrôle AJAX. Mais ça march epas mieux.

    Mais surtout, je ne trouve pas de doc sur le fameux e.statuMessage.

    Vois tu le soucis ?

Discussions similaires

  1. Mettre la valeur d'un upload dans une variable
    Par anca2 dans le forum Langage
    Réponses: 6
    Dernier message: 12/02/2010, 10h43
  2. Réponses: 5
    Dernier message: 03/02/2004, 14h20
  3. [Drag & Drop] Mettre une fiche dans un panel
    Par corwin_d_ambre dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/01/2004, 10h46
  4. Mettre son programme dans Envoyer Vers ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 11
    Dernier message: 29/07/2003, 19h09
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18

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