Bonjour,
j'ai deja envoyé ce post, j'ai bien regardé la faq et je ne comprends
toujours pas. Je vais donc préciser mon problème.
je souhaite afficher différents types de fichiers comme des pdf, des tiff,
des txt...
Voilà mon code:
***** Fichier Fonctions.php *****
*** Sert à créer mon fichier à partir de son numéro de chrono
*** Fonctionne bien
<?
include "Connection.php";
function LitDoc ($VolumeName, $NumVolume, $Position) {
if (file_exists($VolumeName)) {
if ($fp=fopen($VolumeName,"rb")) {
//Vérification sur le début du volume (CARPVOL et NumVol)
rewind($fp);
if ((fread($fp,7)=="CARPVOL") and (fread($fp,5)==$NumVolume)) {
$DebLibre=(int)fread($fp,10);
fread($fp,$Position-23);
if ($Position<$DebLibre) {
if (fread($fp,3)=="$*<") {
fread($fp,44);
$LgDoc=fread($fp,10);
$LgNom=fread($fp,5);
$NomDoc=fread($fp,$LgNom);
$FinDoc=ftell($fp)+$LgDoc;
//Création du fichier
if ($fp2=fopen($NomDoc,"wb+")) {
/*
while (ftell($fp)<$FinDoc) {
fputs($fp2,fread($fp,1));
}
*/
while (ftell($fp)<$FinDoc) {
fputs($fp2,fread($fp,4096));
}
} else {
echo "Ouverture ou création du fichier impossible";
}
} else {
echo "Séparateur introuvable";
}
} else {
echo "Impossible de lire le document (mauvaise position)";
}
} else {
echo "Problème dans le début du volume: ".$VolumeName;
}
} else {
echo "Ouverture du fichier impossible: ".$VolumeName;
}
} else {
echo "Fichier inexistant: ".$VolumeName;
}
fclose($fp);
return $NomDoc;
}
function LitDocChrono ($NumChrono) {
$sql="select I.NumVolume as NumVolume, I.Debut as Debut, V.VolumeName as
VolumeName from [Index] I, Volume V where I.Chrono='".$NumChrono."' and
I.NumVolume=V.NumVolume";
$result=mssql_query($sql);
if (mssql_num_rows($result)==1) {
$NumVolume=mssql_result($result,'0',"NumVolume");
$Debut=mssql_result($result,'0',"Debut");
$VolumeName=mssql_result($result,'0',"VolumeName");
$NomDoc=LitDoc($VolumeName,$NumVolume,$Debut);
return $NomDoc;
} else {
echo "Ce numéro de chrono n'existe pas";
exit();
}
}
?>
Lorsque j'execute ma page index.php, j'ai une erreur:
Warning Cannot add header information - headers already sent
Si j'execute la page:
<?php
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=test.pdf");
?>
j'ai une erreur:
une erreur est survenue lors de l'ouverture de ce document. Erreur de
lecture de fichier.
Pour la page index.php, je pense que mon erreur vient des echo mais je ne
vois pas comment faire autrement.
Sinon est-ce qu'il faut que je gère moi-même les différents types de fichier
dans le code php (voir code
ci-dessous) ? ou alors est-ce que mon serveur apache peut les gérer (via
httpd.conf) ? Est-ce qu'il faut rajouter une ligne en indiquant
l'application comme: AddType application/pdf .pdf (je ne connais pas la
syntaxe)
Voilà ce que je veux faire exactement: j'ai des documents qui sont rangés
dans des volumes et j'ai plusieurs tables qui me permettent de gérer tout
ça. A partir d'un numero id, j'arrive à récupérer mon document (et à le
stocker. je ne sais pas encore où je vais le mettre: réseau ? en local ?
C'est une application intranet. Ce que j'aimerais, c'est que lorsque je
clique sur un bouton (ou lien), mon document s'affiche. Je voulais faire un
header("location:test.pdf") après mon traitement mais cela ne fonctionne
pas. Lorsque je fais un "simple" lien avec <a href="test.pdf"> cela
fonctionne très bien mais j'aimerais éviter d'avoir à cliquer une nouvelle
fois. J'espère que vous pourrez me renseigner, d'avance merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
John GALLET
Bonjour,
j'ai deja envoyé ce post, j'ai bien regardé la faq et je ne comprends toujours pas. Soit.
header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=".$NomDoc); En première lecture, ça a l'air correct.
Essayer aussi avec Content-disposition: (pas de D majuscule).
Warning Cannot add header information - headers already sent http://faqfclphp.free.fr/#ss2.11
j'ai une erreur: une erreur est survenue lors de l'ouverture de ce document. Erreur de lecture de fichier. Essayer avec d'auters navigateurs. Les ouvertures automatiques sont très
dépendantes du client.
Pour la page index.php, je pense que mon erreur vient des echo mais je ne vois pas comment faire autrement. En les enlevant peut-être ?
ci-dessous) ? ou alors est-ce que mon serveur apache peut les gérer (via httpd.conf) ? A ton avis, c'est ton serveur qui va ouvrir le fichier PDF pour l'afficher
sur l'écran du PC de l'internaute ? M'enfin ! (tm)
JG
Bonjour,
j'ai deja envoyé ce post, j'ai bien regardé la faq et je ne comprends
toujours pas.
Soit.
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=".$NomDoc);
En première lecture, ça a l'air correct.
Essayer aussi avec Content-disposition: (pas de D majuscule).
Warning Cannot add header information - headers already sent
http://faqfclphp.free.fr/#ss2.11
j'ai une erreur:
une erreur est survenue lors de l'ouverture de ce document. Erreur de
lecture de fichier.
Essayer avec d'auters navigateurs. Les ouvertures automatiques sont très
dépendantes du client.
Pour la page index.php, je pense que mon erreur vient des echo mais je ne
vois pas comment faire autrement.
En les enlevant peut-être ?
ci-dessous) ? ou alors est-ce que mon serveur apache peut les gérer (via
httpd.conf) ?
A ton avis, c'est ton serveur qui va ouvrir le fichier PDF pour l'afficher
sur l'écran du PC de l'internaute ? M'enfin ! (tm)
j'ai deja envoyé ce post, j'ai bien regardé la faq et je ne comprends toujours pas. Soit.
header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=".$NomDoc); En première lecture, ça a l'air correct.
Essayer aussi avec Content-disposition: (pas de D majuscule).
Warning Cannot add header information - headers already sent http://faqfclphp.free.fr/#ss2.11
j'ai une erreur: une erreur est survenue lors de l'ouverture de ce document. Erreur de lecture de fichier. Essayer avec d'auters navigateurs. Les ouvertures automatiques sont très
dépendantes du client.
Pour la page index.php, je pense que mon erreur vient des echo mais je ne vois pas comment faire autrement. En les enlevant peut-être ?
ci-dessous) ? ou alors est-ce que mon serveur apache peut les gérer (via httpd.conf) ? A ton avis, c'est ton serveur qui va ouvrir le fichier PDF pour l'afficher
sur l'écran du PC de l'internaute ? M'enfin ! (tm)
JG
Jean-Marc Molina
Ce fameux moteur de recherche que tu devrais utiliser : http://www.google.fr/search?q=PHP+%22Warning+Cannot+add+header+information+-+headers+already+sent%22&ie=UTF-8&oe=UTF-8&hl=fr&btnG=Recherche+Google&meta=lr%3Dlang_fr
Cette fameuse FAQ dont on t'a parlé : http://faqfclphp.free.fr/#ss2.11
Cherche si tu veux trouver ! Le newsgroup n'est pas un dépotoir pour ce genre de questions.
Ce fameux moteur de recherche que tu devrais utiliser :
http://www.google.fr/search?q=PHP+%22Warning+Cannot+add+header+information+-+headers+already+sent%22&ie=UTF-8&oe=UTF-8&hl=fr&btnG=Recherche+Google&meta=lr%3Dlang_fr
Cette fameuse FAQ dont on t'a parlé : http://faqfclphp.free.fr/#ss2.11
Cherche si tu veux trouver ! Le newsgroup n'est pas un dépotoir pour ce
genre de questions.
Ce fameux moteur de recherche que tu devrais utiliser : http://www.google.fr/search?q=PHP+%22Warning+Cannot+add+header+information+-+headers+already+sent%22&ie=UTF-8&oe=UTF-8&hl=fr&btnG=Recherche+Google&meta=lr%3Dlang_fr
Cette fameuse FAQ dont on t'a parlé : http://faqfclphp.free.fr/#ss2.11
Cherche si tu veux trouver ! Le newsgroup n'est pas un dépotoir pour ce genre de questions.