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 :

fonctionnement de header location


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut fonctionnement de header location
    Bonjour,
    Je voulais savoir si l'utilisation de header(Location...) permet d'ouvrir des fichiers qui ne sont pas d'extension html.
    J'ai tenté d'ouvrir un fichier word (.doc) mais ça n'a pas marché.
    Merci de m'eclaircir.

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    cet entête n'ouvre rien, c'est juste un ordre envoyé au navigateur pour dire "ouvre l'URL ..."

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Salut,

    Tu utilises avec la fonction header de php un changement de contenu avec un 'content-type' pour word puis par ex pour fichier pdf:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="fichierPdf.pdf"');

    Word = application/msword

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut fonctionnement de header location
    Merci pour ces eclaircissements.

    En fait moi je travaille avec une BD mysql et un repertoire.
    Je recupère le nom du fichier(à travers une requete sql) et je cherche le fichier correpondant dans mon repertoire afin de l'ouvrir à l'aide de header.
    Donc le type du fichier n'est pas connu à l'avance.
    Mes fichiers sont de type html,pdf et doc.
    Mon instruction php actuelle qui ouvre les fichiers html est: header('Location:'snom);
    Je precise que $nom est la variable qui contient le nom de mon fichier.

    Donc comment gerer ces differente extensions ensemble?
    Merci toujours de m'aider!

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Tu peux faire un truc de genre:

    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
     
    		//First, see if the file exists
    		if (!is_file($file)) { die("<b>404 File not found!</b>"); }
     
    		//Gather relevent info about file
    		$len = filesize($file);
    		$filename = basename($file);
    		$file_extension = strtolower(substr(strrchr($filename,"."),1));
     
    		//This will set the Content-Type to the appropriate setting for the file
    		switch( $file_extension ) {
    		  case "pdf": $ctype="application/pdf"; break;
    		  case "exe": $ctype="application/octet-stream"; break;
    		  case "zip": $ctype="application/zip"; break;
    		  case "doc": $ctype="application/msword"; break;
    		  case "xls": $ctype="application/vnd.ms-excel"; break;
    		  case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
    		  case "gif": $ctype="image/gif"; break;
    		  case "png": $ctype="image/png"; break;
    		  case "jpeg":
    		  case "jpg": $ctype="image/jpg"; break;
    		  case "mp3": $ctype="audio/mpeg"; break;
    		  case "wav": $ctype="audio/x-wav"; break;
    		  case "mpeg":
    		  case "mpg":
    		  case "mpe": $ctype="video/mpeg"; break;
    		  case "mov": $ctype="video/quicktime"; break;
    		  case "avi": $ctype="video/x-msvideo"; break;
     
    		  //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
    		  case "php":
    		  case "htm":
    		  case "html":
    		  case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;
     
    		  default: $ctype="application/force-download";
    		}
     
    		//Begin writing headers
    		header("Pragma: public");
    		header("Expires: 0");
    		header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
    		header("Cache-Control: public");
    		header("Content-Description: File Transfer");
     
    		//Use the switch-generated Content-Type
    		header("Content-Type: $ctype");
     
    		//Force the download
    		$header="Content-Disposition: attachment; filename=".$filename.";";
    		header($header);
    		header("Content-Transfer-Encoding: binary");
    		header("Content-Length: ".$len);
    J'ai pris cela sur le Web, ya peut être des erreurs mais ce bout de code donne une idée de développement.

Discussions similaires

  1. Mon header("Location: page.php"); ne fonctionne pa
    Par Flushovsky dans le forum Langage
    Réponses: 17
    Dernier message: 24/03/2006, 23h49
  2. [header location]
    Par agougeon dans le forum Langage
    Réponses: 5
    Dernier message: 11/01/2006, 20h26
  3. Actualiser une page après un "header location"
    Par salva57 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 10/01/2006, 22h09
  4. header('Location:$url') VS session_start()
    Par Paniez dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 22h30
  5. [FTP] problème header("location:......")
    Par K4trix dans le forum Langage
    Réponses: 23
    Dernier message: 30/11/2005, 11h53

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