Proteger fichiers télécharger sur son site

Fermé
brakmar - 7 janv. 2010 à 22:33
 Utilisateur anonyme - 8 janv. 2010 à 21:44
Bonjour,

J'aimerais savoir s'il y aurai un moyen de proteger les fichiers que je met en téléchargement sur mon site pour que personne ne me leech les liens ?

Que tout mes fichiers ne sont téléchargeable uniquement sur mon site et que personne ne peut copier le liens et le donner aux autres.

Merci
A voir également:

5 réponses

C'est du chinois pour moi xD y'a pas un moyens avec le .htacces un truc du genre? ^^
1
Utilisateur anonyme
8 janv. 2010 à 21:44
Non, sinon tu rend inaccessible au public ton fichier.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
7 janv. 2010 à 23:24
Ce n'est pas possible, sauf avec un espace membre.
Ou bien tu peux faire une page download.php qui vérifie si le visiteur vient d'une page de ton site grâce à la variable $_SERVER['HTTP_REFERER']
-1
Dit m'en plus :)
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
8 janv. 2010 à 07:01
<?php
if(preg_match('#^https?://(www\.)?tondomaine\.net/#i', $_SERVER['HTTP_REFERER'])) {
    header('Content-type: image/png');
    header('Content-Disposition: attachment; filename="image.png"');
    readfile('telechargements/image.png');
} else {
    echo 'Les liens directs ne sont pas autorisés';
} ?>
J'ai souligné 3 choses :
1/ C'est le type MIME de ton fichier
2/ Le nom
3/ Le chemin d'accès

Je te conseil d'utiliser une base de données pour stocker ces informations, et ensuite, avec un ID transmit par l'url, tu les récupères.
La structure de la table "telechargements" serait donc : id | file_name | file_type | file_url
Ensuite :
<?php
if(preg_match('#^https?://(www\.)?tondomaine\.net/#i', $_SERVER['HTTP_REFERER'])) {
    mysql_connect('','','');
    mysql_select_db('');
    $sql = 'SELECT file_name, file_type, file_url FROM telechargements WHERE id = '.$_GET['id'];
    $req = mysql_query($sql);
    $nb = @mysql_num_rows($sql);
    if($nb > 0) {
        $infos = mysql_fetch_assoc($req);
        header('Content-type: '.$infos['file_type']);
        header('Content-Disposition: attachment; filename="'.$infos['file_name'].'"');
        readfile($infos['file_url']);
    } else {
        echo 'Fichier introuvable';
    }
} else {
    echo 'Les liens directs ne sont pas autorisés';
} ?>
-1