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 :

Fichier docx telechargé corrompu


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Par défaut Fichier docx telechargé corrompu
    BOnjour,
    Je suis sur une appli asp.net, et je veux afficher dans le nvigateur client le fichier docx créé sur le serveur.
    voici mon 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
     'Dim fmObj As New OPUS_USL.FileManager("azerty.docx")
                    Dim fmObj As New OPUS_USL.FileManager("test.docx")
                    'rempli Buffer
                    Dim buffer() As Byte = fmObj.FileManager("c:\test.docx")
                    Response.ClearHeaders()
                    Response.AddHeader("content-disposition", "attachment; filename=test.docx")
                    Response.ClearContent()
                    Response.ContentEncoding = System.Text.Encoding.UTF8
     
                    Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
     
                    'on envoie le contenu dans le navigateur
                    Response.OutputStream.Write(buffer, 0, buffer.Length)
                    Response.OutputStream.Close()
     
                    Response.Flush()
    Avec ce code, j'ai bien une fenetre de téléchargement qui s'affiche, si je fais "ouvrir", à l'ouverture j'ai le message suivant
    Impossible d'ouvrir le fichier test[1].docx. Des problemes ont été décelés dans le contenu
    Détails
    Impossible d'ouvrir le fichier. Le fichier est corrompu"
    Impossible de trouver d'ou ca vient et sur le net pas vu gd chose, ou tj incomplet...
    Si qqn peut m'aider
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Par défaut
    Bonjour,

    Je ne connais pas la réponse (pas le temps d'approfondir), mais j'ai une piste.
    Tu es sûr que le contenu de ton fichier est en UTF8 ?
    Si non, est-tu obligé de préciser l'encodage, lors du DL ?

    J'espère que cela peut t'aider.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Par défaut
    merci de ton interet.
    Mon fichier est bien UTF8, mais effectivement ca ne coute rien de le préciser dans les propriété du "context.response".
    J'ai modifier mon code est ca fonctionne à présent, par contre je ne pourrai pas dire ce qui diffère, sauf peut etre la fermeture du fileStream...
    Je le met en ligne pour ceux que ca intéressent.
    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
       Dim stream As FileStream = File.Open(Lfichier, FileMode.Open)
                    Dim filename As String = Path.GetFileName(Lfichier)
                    Response.ClearHeaders()
                    Response.ClearContent()
                    Response.ContentEncoding = System.Text.Encoding.UTF8
                    Context.Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                    Context.Response.AddHeader("Content-disposition", "attachment; filename= " & filename)
                    Dim buffer(stream.Length) As Byte ' = New Byte(4056)
                    Try
                        Dim bytesRead As Integer = 0 'buffer.Length
                        bytesRead = stream.Read(buffer, 0, buffer.Length)
                        While (bytesRead > 0)
                            Context.Response.OutputStream.Write(buffer, 0, bytesRead)
                            bytesRead = stream.Read(buffer, 0, buffer.Length)
                        End While
                    Catch ex As Exception
                       CMsgAlerte.Show(ex.Message)
                    Finally
                        stream.Close()
                    End Try
                    Response.End()
    Voilà en espérant que ca pourra en aider certains

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

Discussions similaires

  1. prb retour a la ligne dans fichier txt telecharge avec php
    Par supersonicblonde dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2006, 14h20
  2. Réponses: 2
    Dernier message: 04/05/2006, 19h54
  3. barre de progression pour fichier en telechargement
    Par Tierisa dans le forum Access
    Réponses: 6
    Dernier message: 07/04/2006, 14h49
  4. mettre un fichier en téléchargement
    Par gipn56 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/12/2005, 16h29
  5. fichier en telechargement
    Par vulquin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/11/2005, 09h54

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