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 :

Unzip uploaded file


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Unzip uploaded file
    Bonjour
    Je voulai savoir comment pour dézipper un fichier aprés l'avoir uploader
    j'upload le fichier zip ensuite comment faire pour le dézipper?
    j'ai trouvé cette fonction mais une exeption est généré
    Le nombre magique dans l'en-tête GZip n'est pas correct. Assurez-vous que votre passage s'opère dans un flux GZip.


    Public Function decompression(ByVal cheminSource As String, ByVal cheminDestination As String) As Boolean
    ' cheminSource : chemin complet du fichier compressé
    ' cheminDestination : chemin complet du fichier où le fichier doit être décompressé

    Try

    'Lecture du fichier compresse
    Dim monFileStream As New FileStream(cheminSource, FileMode.Open)
    ' Données du fichier placées dans un GZipStream
    Dim monGzipStream As New GZipStream(monFileStream, CompressionMode.Decompress)

    ' Tableau qui va contenir la taille du fichier
    Dim tailleOctets(3) As Byte

    ' Positionnement dans le Stream pour récupérer la taille
    Dim position As Integer = CInt(monFileStream.Length - 4)
    monFileStream.Position = position

    ' Récupération de la taille du fichier
    monFileStream.Read(tailleOctets, 0, 4)

    ' Repositionnement en début du Stream
    monFileStream.Position = 0

    ' Conversion de la taille du fichier en entier
    Dim tailleFichier As Integer = BitConverter.ToInt32(tailleOctets, 0)
    ' Dimesionnement du buffer
    Dim buffer(tailleFichier + 100) As Byte
    ' Offset qui permettra de se repérer dans le Stream
    Dim monOffset As Integer = 0


    While (True)

    ' Les données sont décompressées et placées dans le buffer
    Dim decompressionOctets As Integer = monGzipStream.Read(buffer, monOffset, 100)

    ' Tant qu'il reste des données on continue
    If (decompressionOctets = 0) Then
    Exit While
    End If

    ' On icrémente l'offset pour ne pas repartir de 0 à chaque fois...
    monOffset += decompressionOctets

    End While

    ' Création du fichier décompressé
    monFileStream = New FileStream(cheminDestination, FileMode.Create)
    ' Ecriture des données décomrpessées dans le fichier
    monFileStream.Write(buffer, 0, tailleFichier - 1)

    ' Efface les données en mémoire tampon
    monFileStream.Flush()

    ' Fermeture des Streams
    monFileStream.Close()
    monGzipStream.Close()

    Return True

    Catch ex As Exception


    Response.Write(ex.Message)

    End Try
    End Function

  2. #2
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958

Discussions similaires

  1. Uploading Files (Job)
    Par Plorf dans le forum SharePoint
    Réponses: 2
    Dernier message: 26/04/2010, 16h00
  2. [HttpUnit] upload file - le fichier qui change de taille
    Par Yannos94 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/09/2007, 14h29
  3. [Upload] file Upload: mettre un fichier sur le serveur
    Par eseb777 dans le forum Langage
    Réponses: 4
    Dernier message: 07/03/2007, 10h01
  4. Upload File Javascript
    Par DrE44 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2007, 15h40
  5. [Upload] file upload preload
    Par taffMan dans le forum Langage
    Réponses: 3
    Dernier message: 17/12/2006, 21h13

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