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

PHP & Base de données Discussion :

Décodage de fichiers (pdf, doc, xls, txt, etc.) encodés en Base64 dans une base de données MySQL [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Antarctique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    C'est résolu! Il fallait tout simplement que j'insère un exit après la fonction print.

    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
     
    if(isset($_GET['file'])){
            //Décoder la chaîne de caratère qui contient le nom du fichier qui a été passé en paramètre dans le lien de la page (page.php?file=nom+du+fichier.pdf)
    	$filename = html_entity_decode(urldecode($_GET['file']));
     
    	//Chercher la chaîne de caractère possédant le document encodé en Base64
    	$file_query = 'SELECT document_encode FROM document WHERE document_id=' . $_GET['file_id'];
    	$file_result = $db->query($file_query);
    	$file_result_row = mysqli_fetch_assoc($file_result);
    	//Extraction de l'extension du fichier
    	$file_extension = strtolower(substr(strrchr($filename, "."), 1));
            //Assignation de la chaine de caratère en Base64 représentant le fichier à une variable
            $document_encode = $file_result_row['document_encode'];
    	$content_type = '';
     
    	//Trouver le bon Content-Type selon l'extension
    	switch ($file_extension) {
    			    case "pdf":
    			        $content_type = "application/pdf";
    			        break;
    			    case "doc":
    			        $content_type = "application/msword";
    			        break;
    			    case "docx":
    			        $content_type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    			        break;
    			    case "xls":
    			        $content_type = "application/vnd.ms-excel";
    			        break;
    			    case "xlsx":
    			        $content_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    			        break;
    			    case "ppt":
    			        $content_type = "application/vnd.ms-powerpoint";
    			        break;
    			    case "pptx":
    			        $content_type = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
    			        break;
    			    case "odt":
    			        $content_type = "application/vnd.oasis.opendocument.text";
    			        break;
    			    case "csv":
    			        $content_type = "text/csv";
    			        break;
    			    case "txt":
    			        $content_type = "text/plain";
    			        break;
    			    case "png":
    			        $content_type = "image/png";
    			        break;
    			    case "jpg":
    			        $content_type = "image/jpeg";
    			        break;
    			    case "jpeg":
    			        $content_type = "image/jpeg";
    			        break;
    			}
     
    			header("'Content-Type:" . $content_type . "'");
    			header("Content-Disposition: attachment; filename=\"$filename\"");
    			print base64_decode($document_encode);
                            exit;
    }

  2. #22
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Maintenant que tu l’écris je me souviens que je le savais !
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Upload de fichier dans une base de données MySQL
    Par miko2009 dans le forum W4 Express
    Réponses: 1
    Dernier message: 07/01/2009, 19h16
  2. Réponses: 2
    Dernier message: 21/07/2008, 15h00
  3. Réponses: 1
    Dernier message: 30/12/2007, 14h51
  4. importer une fichier excel dans une base de donnée MySQL
    Par maverick56 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/05/2007, 09h15
  5. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41

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