PHP - File Streaming

Fermé
CrazyGentleMan - 30 déc. 2010 à 21:14
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 30 déc. 2010 à 22:10
Bonjour,
J'ai un site qui a une section de téléchargements. J'ai besoin pour les fichiers de ne pas être accessibles directement par un utilisateur annonymous, je suis donc de les mettre dans un répertoire non accessibles aux utilisateurs, mais est accessible sur le serveur web. Lorsque l'utilisateur clique sur le lien pour télécharger le fichier, j'en ai besoin pour rediriger vers une page de téléchargement qui va stream le fichier à l'utilisateur sans le connaître l'emplacement du répertoire ou le fichier, et il va lui demander de l'enregistrer sur son ordinateur . J'ai trouvé le code suivant sur un précédent post, mais je ne peux pas le faire fonctionner correctement. Peut-être que je ne connais pas les noms exacts des variables qu'il veut être transmis. S'il vous plaît inclure une explication de la façon d'utiliser de cette code.

<?php
$filename='Firefox%20Setup%203.6.13.exe';
$file_path='http://ftp.byfly.by/pub/mozilla.org/firefox/releases/3.6.13/win32/fr/';
$file= $file_path."/".$filename;
$len=filesize($file);
header("content-type: application/save");
header("content-length: $len");
header("content-disposition: attachment; filename=$filename");
$fp=fopen($file, "r");
fpassthru($fp);
?>

A voir également:

1 réponse

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
30 déc. 2010 à 22:10
Salut.

Pour rendre le contenu du dossier inaccessible via HTTP, tu peux créer un .htaccess dans ce dossier contenant seulement : deny from all

Pour envoyer un fichier via PHP, base-toi sur le 1er exemple :
https://www.php.net/manual/fr/function.readfile.php
Il faudra ajouter une condition pour vérifier si l'utilisateur est anonyme ou non.

Par contre, ça serait bien aussi s'il n'y avait pas autant d'anonymes sur CCM.
Tu peux contribuer à mon souhait en t'inscrivant ;)
0