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 :

Problème avec download fichier


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut Problème avec download fichier
    Bonjour à tous,
    J'essaye de mettre en place un modalpopup (Ajax) "waiting" durant les traitements un peu long de mon site.

    J'utilise donc un modalpopup avec un message et un Gif animé (avec fonction javascript pour que l'animation se fasse durant le postback ) qui s'affiche lorsque l'on clique sur un bouton (avec OnclientClick) via une fonction Javascript.

    Lorsque l'on clique sur le bouton, mon ModalPopUp s'affiche bien et la gif animée est bien animée.
    Les traitements (maj de la BDD, génération d'un PDF à partir d'un rapport CrystalReport et Download du PDF) de la procédure qui s'execute lors du clique du bouton se passe bien, sauf qu'à la fin de ma procédure, la commande qui doit permettre de cacher le modalpopup ne fait rien (pas de message d'erreur...).
    Le problème vient de ma fonction qui sert à downloader le fichier PDF sur le poste client car quand je supprime cette fonction, plus de problème.

    Ci-dessous, le code de cette fonction :
    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
        Private Function Upload(ByVal fichier As String, ByVal ext As String, ByVal repertoire As String) As Boolean
            ' On ouvre le fichier.
            Dim iStream As New System.IO.FileStream("C:\Inetpub\wwwroot\" & repertoire & fichier & "." & ext, System.IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
     
            Dim dataToRead As Long = iStream.Length
            Dim length As Integer
            'Response.ContentType = "application/octet-stream"
            Response.ContentType = "application/pdf"
            Response.AddHeader("Content-Disposition", "attachment; filename=" & fichier & "." & ext)
     
            Dim buffer(10000) As Byte
            ' on charge le fichier et on envoi par paquet de 10000.
            While dataToRead > 0
                'on vérifie si le client est toujours connecté
                If Response.IsClientConnected Then
                    length = iStream.Read(buffer, 0, 10000)
                    Response.OutputStream.Write(buffer, 0, length)
                    Response.Flush()
                    ReDim buffer(10000) ' Clear the buffer
                    dataToRead = dataToRead - length
                Else
                    'si le client n'est plus connecté
                    dataToRead = -1
                    Return False
                End If
            End While
            Response.Close()
            iStream.Close()
            Return True
        End Function
    Je ne trouve pas d'explication à mon problème et donc de solution...

    Par avance, merci.

  2. #2
    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
    Ca vient surement du fait d'écrire directement dans Response

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Je pense aussi qu'il y a un problème à ce niveau là, mais je ne vois pas ou précisément et donc je ne vois pas de solution...
    Surtout que j'ai mis le modalpopwaiting.hide() juste avant cette fonction et j'ai tout de même le problème...
    Je pensais que même si ma fonction Download n'était pas trés "propre" (au niveau du "flux"), le modalpopwaiting.hide() étant situé avant, il devrait envoyé au client le "code" pour cacher le modalpopup...


    Citation Envoyé par lutecefalco Voir le message
    Ca vient surement du fait d'écrire directement dans Response

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Bonjour à tous,
    quelqu'un aurait-il une idée, car j'ai encore fait quelques essais et je ne trouve pas de solution à mon problème.

    Par avance, merci.

  5. #5
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Bonsoir,

    Je pensais que même si ma fonction Download n'était pas trés "propre" (au niveau du "flux"), le modalpopwaiting.hide() étant situé avant, il devrait envoyé au client le "code" pour cacher le modalpopup
    En fait la fonction modalpopwaiting.hide() quand elle est appelée n'est pas excécuter intantanément, le server écrit simplement dans la réponse HTTP la fonction javascript de fermeture , à la suite de cet appel tu modifis totalement le contenu du flux de réponse , le déclenchement de fermeture est perdu à ce moment là...

    Aprés est-ce indispensable d'avoir un popup perso lors d'un téléchargement alors que le navigateur possède son propre "popup" avec barre de progression?

    A suivre...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par mafyoso Voir le message
    Bonsoir,



    En fait la fonction modalpopwaiting.hide() quand elle est appelée n'est pas excécuter intantanément, le server écrit simplement dans la réponse HTTP la fonction javascript de fermeture , à la suite de cet appel tu modifis totalement le contenu du flux de réponse , le déclenchement de fermeture est perdu à ce moment là...

    Aprés est-ce indispensable d'avoir un popup perso lors d'un téléchargement alors que le navigateur possède son propre "popup" avec barre de progression?

    A suivre...
    Merci pour l'explication du fonctionnement du modalpopwaiting.hide, mais j'aimerais comprendre pourquoi tu écrits que "à la suite de cet appel tu modifis totalement le contenu du flux de réponse" ?
    Quand est-ce que le flux de réponse est émis "normalement" ? A la fin de ma fonction ?

    Effectivement pas besoin de popup lors du téléchargement, d'ailleurs j'ai bien mis le show/hide du modalpopup avant le téléchargement car c'est surtout les traitements précédents le téléchargement qui sont longs.

    Pour résumer, ce que vous voudrais faire :
    1 - Affichage du modalpopup
    2 - Traitements longs (maj BDD + génération PDF CrystalReport)
    3 - Cacher le modalpopup
    4 - télécharger le PDF généré

    Si je comprend bien, l'étape 3 ne s'execute pas tout de suite, et l'étape 4 "annule" l'étape 3...
    Y'a t'il une solution a ce problème ?

Discussions similaires

  1. Problème avec les fichiers en C++
    Par snatch321 dans le forum C++
    Réponses: 7
    Dernier message: 09/05/2006, 19h07
  2. Problème avec un fichier .BAT
    Par jbidou88 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 01/05/2006, 13h03
  3. Problème avec un fichier .BAT
    Par jbidou88 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 26/04/2006, 14h55
  4. Problème avec des fichiers
    Par Stany dans le forum C++
    Réponses: 7
    Dernier message: 17/10/2005, 16h53
  5. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44

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