[PHP] Liste déroulante forcant le téléchargement

Bonjour,

Voila je suis debutant en PHP, je voudrais faire une liste deroulante qui forcerer le telechargement du fichier cible pour pas qu’il soit affiché dans le navigateur comme par exemple: une image, une video …

J’ai trouve sur le net 2 scripts, le premier un exemple de liste deroulante qui propulse le visiteur sur une page de la liste, l’autre une script qui permet de forcer le telechargement.

j’ai teste ces 2 scripts individuellement chancun marche tres bien, le probleme c’est que dans mon cas je dois les “fusionner” et la ca ce corse :ane:

script de la page qui affiche la liste: (ici y a rien a faire)
Source ici

ici le code source du script qui est dans la page "redirection.php"
celle qui est chargée apres le choix
Source ici

ici le code source qui force le telechargement d’un fichier, celui qui est a integre dans la page “redirection.php”
Source ici

voila je pense que si qqun si connait ca devrait pas etre compliquer a faire, mais pour moi c’est un peu le saint-graal :ane:

merci d’avance pour ceux qui s’arreteront qq minutes sur mon probleme

@+ et bon week end a tous

Un truc comme ça ?

script de la page qui affiche la liste: (ici y a rien a faire)

<FORM method="POST" action="redirection.php">
<select NAME="Liste">
<option selected="selected" value="">-Sélectionnez qqchose-</option>
<option value="image2">nom_image2</option>
<option value="image1">nom_image1</option>
</select>
<input type="submit" name="envoi" value="Télécharger" />
</FORM>

ici le code source du script qui est dans la page "redirection.php"
celle qui est chargée apres le choix

<?php

function fct_download($nom_fichier)
{
// infos du fichier
$fichier = "mes_fichiers/$nom_fichier";
    
// téléchargement du fichier
header('Content-disposition: attachment; filename='.$nom_fichier);
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: fichier');
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);
}


switch($_POST['Liste']){
case 'image2':
fct_download('imag2.jpg');
break;
case 'image1':
fct_download('imag1.jpg');
break;
}
?>

merci je voudrais essayer
mais je sais pas ou mettre le chemin du repertoire qui contient les images

bon merci a toi

jai trouve l’erreur

faut remplacer

par

merci encore a toi :slight_smile:

:slight_smile: :jap: