Téléchargement pièce jointe

Résolu
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   -  
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit souci concernant la notion de téléchargement de pièce jointe. Pour commencer, j'ai un formulaire PHP où dedans je peux attacher un fichier (uniquement de type DOC, DOCX, PDF ou ODT). Si l'utilisateur attache un fichier, celui-ci est mis à un emplacement spécial sur le serveur.

Or, après avoir attaché ce fichier au formulaire PHP, je peux, par l'intermédiaire d'une autre fonctionnalité, télécharger cette pièce jointe. Mais j'ai un petit souci avec le contenu d'un HEADER donc voici ce que j'ai réalisé :


if (file_exists($cheminFichier)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($cheminFichier));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($cheminFichier));
readfile($cheminFichier);
}


Je pense que le problème vient de ça :
 header('Content-Type: application/octet-stream');
.

Dans certains exemples trouvés j'ai pu constater que lorsqu'on souhaite télécharger un fichier PDF par exemple nous mettions ça :
 header('Content-Type: application/pdf');
.

Ayant plusieurs type d'extensions, je voulais savoir si on pouvait manipuler le Content-Type en lui ajoutant plusieurs 'extensions' ?

Quelqu'un pourrait-il m'aiguiller pour que je puisse résoudre cette problématique?

Merci d'avance.
A voir également:

1 réponse

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, bien sûr qu'on peut (et même doit pour que ça marches comme tu le souhaites) manipuler
Content-Type
: il suffit de fournir le type MIME approprié.
mime_content_type étant pratique, elle est obsolète donc il vaut mieux l'éviter.
L'extension
finfo
fournit la même fonctionnalité.
Il faut s'en servir comme ceci:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$typeMIME = finfo_file($finfo, $cheminFichier);
finfo_close($finfo);
header('Content-Type: ' . $typeMIME);
C'est pas dur, hein ;)
0
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ! ;)
Aprés plusieurs recherches j'ai trouvé la même solution que tu viens de me proposer :)
0