Lien de téléchargement non visible.

Hello la team,

J'ai besoin d'aide !
J'ai un bouton, c'est un lien de téléchargement d'un fichier.
Quand je passe la souris dessus, le lien apparait en bas du navigateur, on peut donc télécharger ce fichier en direct.
J'aurais aimé crypter ce lien.
Je pense que cela doit être possible mais je ne suis pas assez compétent pour le faire.
Alors si quelqu'un peut m'aider !

Merci

Jol

Réponses

  • J'ai peut-être ce dont tu as besoin.

    En plus, cela te compte si tu veux le nombre de téléchargements + les logs de celui qui a téléchargé.

    IP
    FAI
    Date/heure de téléchargement
    Nom du fichier téléchargé

    Démo ici pour quelques jours.

    *ttp://56.reseauk.info/
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    février 2018 modifié
    Voici un bout de code à mettre dans une page statique pour cacher l'emplacement des fichiers/documents :
    [== PHP ==]
    <div class="scrollable-table">
    	<table class="download full-width">
        	<thead>
            	<th>&nbsp;</th>
            	<th>Name</th>
            	<th>Date</th>
            	<th>Size</th>
            	<th>Description</th>
        	</thead>
        	<tbody>
    <?php
    
    $dir = 'download/';
    
    function byteConvert($bytes) {
        if ($bytes == 0) { return "0.00&nbsp;"; }
    
        $s = array('&nbsp;', 'K', 'M', 'G', 'T', 'P');
        $e = floor(log($bytes, 1024));
    
        return round($bytes/pow(1024, $e), 2).$s[$e];
    }
    
    # Récupération et affichage de la liste des fichiers sous forme de liste
    global $plxMotor;
    $root = PLX_ROOT.$plxMotor->aConf['medias'].$dir;
    $filename = $root.'.htaccess';
    $descriptions = array();
    if(file_exists($filename)) {
        if(preg_match_all('@^AddDescription\s+"([^"]+)"\s+(.+)$@m', file_get_contents($filename), $matches, PREG_SET_ORDER)) {
            foreach($matches as $capture) {
                $descriptions[$capture[2]] = $capture[1];            
            }
        }
    }
    $glob = plxGlob::getInstance($root);
    if ($files = $glob->query('/[\w-]+\.\w+$/')) {
    	sort($files);
    	foreach($files as $filename) {
    		$href = $plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename));
    		$ext = pathinfo($filename, PATHINFO_EXTENSION);
            $time = date('Y-m-d H:i', filemtime($root.$filename));
            $icon = '&nbsp;';
            $size = byteConvert(filesize($root.$filename));
            $description = (array_key_exists($filename, $descriptions)) ? $descriptions[$filename] : '';
    		echo <<< TR
       	     <tr>
        	        <td class="$ext">$icon</td><td><a href="$href">$filename</a></td><td>$time</td><td>$size</td><td>$description</td>
            </tr>\n
    TR;
    	}
    }
    else {
    ?>
    	<tr colspan="5"><td>Aucun document</td></tr>
    <?php
    }
    ?>
        	</tbody>
    	</table>
    </div>
    
    Indiquer dans la variable $dir le nom du bon dossier où sont stockés les fichiers dans le dossier data/medias
    Afficher sur http://gist.github.com

    voir démo
  • Pourquoi faire compliqué avec des scripts externes quand on peut faire simple et propre avec Pluxml ?

    Cela fonctionne très bien.

    @Bazooka07

    Mon idée, Jean-Pierre, c’est que tu devrais compléter la liste de tes scripts et bouts de code comme ici par exemple

    C'est ce que je suis en train de faire de mon coté en constituant une vraie scripothèque et tes productions rendent service à beaucoup de monde.

    A moi par exemple. ;)
  • Cela ne fonctionne pas avec Pluxml 5.4 mais après une maj vers 5.6,ça roule fort bien.

    A ce propos, le thème Bounce fonctionne bien sur la 5.6 .

    Un petit truc.

    Est-il possible de modifier le script pour lister aussi les sous/répertoires et ce qu'ils contiennent ?
  • jol5926jol5926 Member
    février 2018 modifié
    jack31 a écrit:
    J'ai peut-être ce dont tu as besoin.

    En plus, cela te compte si tu veux le nombre de téléchargements + les logs de celui qui a téléchargé.

    IP
    FAI
    Date/heure de téléchargement
    Nom du fichier téléchargé

    Démo ici pour quelques jours.

    *ttp://56.reseauk.info/

    Hello,
    je suis intéressé par ton script.


    @ Bazooka
    Ton script fonctionne très bien dans une page statique mais pas sur une page article.
    Est-il possible de modifier le script pour lister aussi les sous/répertoires et ce qu'ils contiennent ?

    Je suis également preneur.

    Merci

    Jol
  • jol5926 a écrit:
    je suis intéressé par ton script.

    Voici un lien pour télécharger cela. Tu as deux scripts dans le zip et au cas où, je peux t'aider à les paramétrer.

    *ttp://jo.legtux.fr/scripts-tele/scripts-telechargement.zip

    Le premier est tout simple mais pas pratique à mon goût et le second (DCL) plus élaboré avec une page d'aide et des liens vers le support en anglais mais ça vaut le coup.

    Maintenant, ils ne font rien de mieux que le script de Bazooka et il est peut-être inutile de se casser la tête avec des scripts externes sauf si tu en as besoin pour un site hors Pluxml.

    En fait, cela dépends de ce que tu cherche à faire.
  • @jack31
    Merci
    je regarde ça
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    J'ai mis à jour le code dans le billet #3.
    Maintenant la taille et la date des fichiers, avec une description succinte s'affichent.

    Pour les descriptions, il faut renseigner un fichier .htaccess comme décrit ici

    Il n'est pas possible d'utiliser directement ce script dans un article. L'insertion de code PHP dans un article est interdite par PluXml.
    Par contre, il est possible de le mettre dans le template de l'article.

    Pour afficher une liste de fichiers à télécharger en masquant leurs noms réels, il faut créer un plugin pour cela. Ce n'est pas très compliqué. Il suffira ensuite de rajouter dans l'article une balise du type <div data-download="mon-dossier-de-telechargement"> </div>

    C'est un peu dommage que PluXml ne gére pas les liens <a href="index.php?download/ce-fichier-est-payant">Donnez-moi des sous</a> :D

    Je ferai un pull request quand j'aurai un peu de temps.
  • @ Bazooka
    Merci de ton aide.
    Il existe déjà un plugin qui permet de télécharger un fichier :
    http://forum.pluxml.org/viewtopic.php?id=4606
    mais celui-ci permet le téléchargement que d'un seul fichier dans l'article.
    :)
Connectez-vous ou Inscrivez-vous pour répondre.