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 -
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é :
Je pense que le problème vient de ça :
Dans certains exemples trouvés j'ai pu constater que lorsqu'on souhaite télécharger un fichier PDF par exemple nous mettions ça :
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.
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:
- Téléchargement pièce jointe
- Telechargement direct - Accueil - Outils
- Pièce d'identité - Accueil - Services publics
- 1 pièce jointe - Guide
- Dark world telechargement - Guide
- Téléchargement - Télécharger - Compression & Décompression
1 réponse
'lut, bien sûr qu'on peut (et même doit pour que ça marches comme tu le souhaites) manipuler
mime_content_type étant pratique, elle est obsolète donc il vaut mieux l'éviter.
L'extension
Il faut s'en servir comme ceci:
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
finfofournit 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 ;)
Aprés plusieurs recherches j'ai trouvé la même solution que tu viens de me proposer :)