Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/10/2007, 10h30   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 44
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 44
Points : 12
Points : 12
Par défaut erreur telechargement fichier

Bonjour à vous.

Je cherche la solution pour forcer un téléchargement ...
J'ai donc fouiner sur la toile et trouvé ceci !
J'ai ce code qui me parait être clair mais j'ai un message "type de fichier ...pas pris en charge... endommagé..."
Si vous pouvez m'orienter ! merci bien.

Dans ma page visiteur.php :

Code :
1
2
3
4
5
6
 
<?php
$Fichier_a_telecharger = 'INSCRIPTION_NAP.pdf';
$chemin = "/nap_nouveau/" ;
?>
<a href="telecharger.php?chemin=<?=$chemin?>&Fichier_a_telecharger=<?=$Fichier_a_telecharger?>">download</a>
et dans ma page telecharger.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
header("Content-type: application/force-download");
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=$Fichier_a_telecharger");
readfile("$chemin"); 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
</body>
</html>
zabuze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2007, 11h09   #2
Invité de passage
 
Inscription : octobre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 5
Points : 1
Points : 1
Bonjour,

Les variables dans ton lien html sont mal utilisées, leur contenu ne sera pas écrit dans le lien.
En php, pour écrire du contenu, il faut utiliser 'echo'
Ton lien deviendra donc:
Code :
1
2
 
<a href="telecharger.php?chemin=<? echo $chemin; ?>&Fichier_a_telecharger=<? echo $Fichier_a_telecharger; ?>"> telecharger </a>
Pour utiliser directement $Fichier_a_telecharger et $chemin dans ta page telecharger.php, il faut que la directive 'register_globals' dans le php.ini soit à On. Sinon il faut utiliser la variable $_GET['Fichier_a_telecharger'] et $_GET['chemin'] (ce qui est plus sécurisé). Et ne pas oublier de vérifier les variable $chemin et $fichier_a_telecharger.

Le nom du fichier dans l'attribut filename du header Content-disposition, doit être entouré de quote ("...").

La fonction readfile requiert le nom du fichier en plus du chemin. readfile($chemin); ne suffit pas, il faut readfile($chemin.$Fichier_a_telecharger);
Le chemin doit être relatif à ta page telecharger.php

Etant donné que c'est un fichier PDF, il n'est pas nécessaire d'ajouter du code HTML, le readfile() renvois le contenu du fichier. Tu peux donc enlever tout le code HTML


Ca devrait aller mieux
Xilhion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h20.


 
 
 
 
Partenaires

Hébergement Web