8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je cherche à proposer à mes membres de télécharger directement certains fichier sans qu'ils s'ouvrent dans le navigateurs (je ne peux donc pas mettre de href classique) de plus je ne souhaite pas qu'ils puissent accéder à l'url de base facilement.

Voici comme je procède ->

dl.php
<?php
session_start();
if(isset($_GET['file'])) {
   $file_link = substr($_SESSION['repertoire_utilisateur'].$_GET['file'], 2);
   $filename = substr($file_link, strrpos($file_link, '/')+1);

   header('Content-type:force-download');
   header('Content-Disposition: attachment; filename='.$filename.'');
   readfile($file_link);
}
?>


La variable de session contient le répertoire de l'utilisateur (par exemple : ./data/bidule/), j’enlève le . et / avec substr pour qu'il me reste data/bidule/

<?php $file_link ?>


comprend le chemin pour accéder au fichier.

<?php $filename ?>


contient uniquement le nom du fichier.

J'ai deux problèmes ->
1) readfile ne fonctionne pas pour moi, en effet je propose d’héberger de gros fichier, c'est donc impossible d'utiliser readfile.
2) je suis obligé d'utiliser IIS, donc pas de htaccess...

Avez-vous une idée pour me débloquer de cette situation?

Merci Smiley smile
Modifié par Lerman (12 Jun 2012 - 15:23)