PHP - File Streaming
CrazyGentleMan
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
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);
?>
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:
- PHP - File Streaming
- Streaming - Guide
- .Bin file - Guide
- Host file - Guide
- .Dat file - Guide
- Fast streaming - Accueil - Guide TV et vidéo
1 réponse
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 ;)
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 ;)