Forcer le telechargement en php

Fermé
maitreji Messages postés 2 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 17 juin 2015 - 17 juin 2015 à 06:17
 maitreji - 17 juin 2015 à 21:14
Bonjour,
j'utilise ce script pour lancer le telechagement:
<?php
function forcerTelechargement($nom, $situation, $poids)
{
header('Content-Type: application/octet-stream');
header('Content-Length: '. $poids);
header('Content-disposition: attachment; filename='. $nom);
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($situation);
exit();
}
/*******************************************************
  • Appel de la fonction
                                                                                                              • /

forcerTelechargement('verbi_vrai_mbata.mp4', 'video/mini/verbi_vrai_mbata.mp4', 10000);
?>
ou

<?PHP
if( !is_file( $_GET['filename'] ) )
die( "ERREUR : Le fichier \"" . $_GET['filename'] . "\"n'existe pas !\n" ) ;

header( "Pragma: public" ) ;
header( "Expires: 0" ) ;
header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ) ;
header( "Content-Type: application/force-download" ) ;
header( "Content-Type: application/octet-stream" ) ;
header( "Content-Type: application/download" ) ;
header( "Content-Disposition: attachment; filename=" . $_GET['filename'] . ";" ) ;
header( "Content-Transfer-Encoding: binary" ) ;
header( "Content-Length: " . filesize( $_GET['filename'] ) ) ;
readfile( $_GET['filename'] ) ;

exit() ;
?>
mais tous les deux ne marchent pas comme je voulais, parfois ils lancent le telechargement et le fichier prend le nom du chemin d'acces le \ remplacer par le - cki n pas propre, help me
A voir également:

1 réponse

animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 17/06/2015 à 13:16
Voila un exemple qui marche inpec chez moi (ici pour un pdf)

<?php
// information concernant le fichier à télécharger
$fichier = 'chemin/fichier.pdf';
$nom_fichier = 'fichier.pdf';

// téléchargement du fichier
header('Content-disposition: attachment; filename='.$nom_fichier);
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($fichier));
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($fichier);
?> 


Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
0
merci animostab pour ta réponse je vais essayé ce script. Cordialement
A+
0