PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 24/01/2010 10:33:44

Zugmy
Membre
Inscription : 07/11/2009
Messages : 11

Page statique de téléchargement

Bonjour, j'aimerais insérer dans mon site une page statique de téléchargement qui listerais tout les documents préalablement uploadés. Quelqu'un a-t-il déjà fait cela?
Merci d'avance
http://waigunga.clanfree.net/

Hors ligne

#2 24/01/2010 12:05:50

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

Peut être cette page du wiki pourrait te servir de base ?
http://wiki.pluxml.org/?page=Afficher%2 … A9pertoire

Hors ligne

#3 24/01/2010 17:17:44

Zugmy
Membre
Inscription : 07/11/2009
Messages : 11

Re : Page statique de téléchargement

Je ne suis pas très doué en programmation, quelqu'un pourrai-il m'aider?

Hors ligne

#4 24/01/2010 18:00:45

amoweb
Membre
Lieu : Valence
Inscription : 05/08/2009
Messages : 277
Site Web

Re : Page statique de téléchargement

Salut Zugmy
La modification du code donnée dans le wiki est très simple

<?php
# Nom du dossier images à renseigner
$dir = 'data/images/galerie1';
# Récupération et affichage de la liste des images sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png).tb$/')) {
    echo '<ul class="galerie">';
    foreach($files as $filename) {
        $file = $dir.'/'.$filename;
        echo '<li><a href="'.str_replace('.tb', '', $file).'"><img src="'.$file.'" alt="" /></a></li>';
    }
    echo '</ul>';
}
else echo "Aucune image";
?>

Il faut que tu mette le nom de ton répertoire dans cette ligne : $dir = 'data/images/galerie1';

Ensuite ajoute les extensions que tu souhaite voir apparaitre dans ta page de téléchargements : if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png).tb$/')) {
on supprime aussi le .tb qui servait à cherche les miniatures :
Ajoute par exemple : les pdf et les zip : (jpg|gif|png|pdf|zip)$/')

Pour finir il faut personnaliser l'affichage en modifiant cette ligne :
echo '<li><a href="'.str_replace('.tb', '', $file).'"><img src="'.$file.'" alt="" /></a></li>';

On va par exemple afficher uniquement le nom du fichier avec un lien :
echo '<li><a href="'.$file.'">' . str_replace($dir, '', $file) . '</a></li>';

Édit : J'ai modifié quelques ligne ça fonctionne.

Hors ligne

#5 24/01/2010 19:42:18

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

merci je me disais bien que ça pourrait faire une base
du coup on peut le décliner avec tout média (ex sons, vidéos etc) :-)

Hors ligne

#6 24/01/2010 20:07:42

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

Dans le cadre de séquences ogg theora/vorbis que j'envisage d'inclure sur mon blogue via la balise vidéo, j'ai utilisé tes explications pour créer une page affichant les séquences audio/vidéo :

<?php
# Nom du dossier séquences à renseigner
$dir = 'data/documents';
# Récupération et affichage de la liste des séquences sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(ogg)$/')) {
    echo '<ul class="galerie">';
    foreach($files as $filename) {
        $file = $dir.'/'.$filename;
        echo '<li><a href="'.$file.'">' . str_replace($dir, '', $file) . '</a></li>';
    }
    echo '</ul>';
}
else echo "Aucune séquence";
?>

Dernière modification par antistress (24/01/2010 20:13:26)

Hors ligne

#7 24/01/2010 20:22:44

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 177
Site Web

Re : Page statique de téléchargement

Bonjour Zugmy

Ce code (à mettre dans une page statique) devrait faire ton affaire

<?php
# Nom du dossier images à renseigner
$dir = 'data/documents';
# Récupération et affichage de la liste des images sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo '<ul class="telechargements">';
    foreach($files as $filename) {
        $file = $dir.'/'.$filename;
        echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';
    }
    echo '</ul>';
}
else echo "Aucun document";
?>

Rajoute les extensions autorisées au téléchargement

(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)

NB/ si les fichiers sont uploadés à la main par FTP, veillez à ce qu'ils soient nommés avec uniquement des minuscules, des chiffres et le caractère _ de manière à valider l'expression régulière qui sélectionne les fichiers: a-z0-9-_


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#8 24/01/2010 20:42:34

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

je peux te demander à quoi sert

echo '<ul class="telechargements">';

et la fonction plxEncrypt à

echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';

?

D'ailleurs il y en a un au pluriel et l'autre pas c'est normal ?

Est ce qu'il serait possible de calsser les fichiers par genre ensuite (comme les articles classés par catégories) ?
Ex :
pdf
* ...
* ...
ogg theora
* ...
* ...
ogg vorbis
* ...

(dans le cas de ogg les extensions sont les mêmes c'est le type mime qui change)

Dernière modification par antistress (24/01/2010 20:49:34)

Hors ligne

#9 24/01/2010 21:47:25

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 177
Site Web

Re : Page statique de téléchargement

1)

echo '<ul class="telechargements">';

C'est pour personnaliser l'affichage de la liste grâce au fichier css de ton thème.  J'ai mis  "telechargements" mais j'aurais pu mettre n'importe quoi. C'est pour rester cohérent car ici il est sujet de téléchargement

2) La fonction encryptId c'est pour masquer le lien où est stocké le fichier

3) Oui c'est normal que dans la ligne suivante "telechargement" soit au singulier, car l'url est interprétée par pluxml quand elle est formatée de cette façon. c'est donc un mot réservé.

echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';

4) ça devrait être possible de classer par ordre alphabétique en fonction des extensions des fichiers.


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#10 24/01/2010 23:11:01

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

merci

(et 2° est excellent !)

Hors ligne

#11 25/01/2010 02:25:40

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

J'ai uploadé "(audio)Fenster-Free-Software-Song.ogg" dans mon dossier data/documents/ pourtant ma page mentionne "ong.ogg" et en cliquant dessus je retourne sur la page d'accueil
http://libre-ouvert.toile-libre.org/?st … udio-video

mon code :

<?php
# Nom du dossier séquences à renseigner
$dir = 'data/documents';
# Récupération et affichage de la liste des séquences sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(ogg)$/')) {
    echo '<ul class="telechargements">';
    foreach($files as $filename) {
        $file = $dir.'/'.$filename;
        echo '<li><a href="./?toutes-les-sequences-audio-video/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';
    }
    echo '</ul>';
}
else echo "Aucune séquence";
?>
<p><a href="?static9/parcourir">retour</a></p>

je pense que j'ai pas compris à quoi sert

href="./?telechargement/'

ça correspond à un sous-dossier à créer ou c'est l'adresse de la page du site recensant les documents ?

Dernière modification par antistress (25/01/2010 02:38:10)

Hors ligne

#12 25/01/2010 09:22:53

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 177
Site Web

Re : Page statique de téléchargement

Le href="./?telechargement/' c'est comme si on avait mis

index.php?action=telechargement&fichier=(audio)Fenster-Free-Software-Song.ogg

Cela permet de savoir que ce qui suit derrière ?telechargement/' est une url cryptée que pluxml va décryptée pour pouvoir envoyé le fichier à l'utilisateur

dans ton nom de fichier ne met pas de ( et ). Uniquement des minuscules, des chiffres et le caractère _ de manière à valider l'expression régulière qui sélectionne les fichiers: a-z0-9-_

Ton fichier doit être stocké dans data/documents (pas de sous dossiers), sinon modifie le chemin en conséquences (exemple: data/documents/audios)


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#13 25/01/2010 10:57:39

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

je vais essayer merci

Hors ligne

#14 25/01/2010 12:44:44

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

oui, c'était bien ça ça marche avec free_software_song_by_fenster.ogg merci beaucoup :-)

Hors ligne

#15 25/01/2010 12:52:58

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

dans le wiki, parties gestion des fichiers et gestion des images, j'ai ajouté :
"Attention : pour assurer une compatibilité maximale, il est recommandé de nommer vos fichiers avec des caractères minuscules et d'éviter les espaces ainsi que certains caractères comme les parenthèses ou le signe moins (préférer le tiret sous la ligne)."

Dernière modification par antistress (25/01/2010 12:53:21)

Hors ligne

#16 25/01/2010 14:45:46

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

Ca m'a semble interessant de mettre le code dans le wiki http://wiki.pluxml.org/?page=Cr%C3%A9er … %A9charger

Hors ligne

#17 25/01/2010 17:17:13

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 177
Site Web

Re : Page statique de téléchargement

Super. Merci antistress pour l'ajout dans le wiki.


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#18 26/01/2010 01:59:12

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

on pourrait aussi afficher à côté la taille des fichiers ?
j'ai trouvé ça mais je sais pas si ça peut être intégré... http://zigazou.wordpress.com/2009/12/07 … nt-en-php/

il y a aussi moyen de connaître le type mime apparemment http://tecfa.unige.ch/guides/php/php5_f … -type.html

après le xhtml va falloir que je creuse le PHP je sens...

Dernière modification par antistress (27/01/2010 00:43:08)

Hors ligne

#19 26/01/2010 15:06:53

Zugmy
Membre
Inscription : 07/11/2009
Messages : 11

Re : Page statique de téléchargement

Un grand merci de toute l'aide apportée, ce forum est très dynamique et c'est un plaisir d'utiliser pluxml!

Hors ligne

#20 27/01/2010 00:45:52

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

Une petite idée pour intégrer le code ci-dessus afin d'afficher la taille des fichiers et leur type mime ?
Pour la taille, la formule serait un truc du genre

echo mime_content_type('mon_fichier')

mais par quoi remplacer "mon_fichier" ?

Hors ligne

#21 27/01/2010 12:33:08

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

Tiens ce que je veux faire c'est ce que fait Gmail avec les pièces jointes, par ex :
"Pigeons.pdf (application/pdf) 74 Ko"

Hors ligne

#22 27/01/2010 19:11:25

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 177
Site Web

Re : Page statique de téléchargement

Avec l'affichage de la taille des fichiers

<?php
# Nom du dossier images à renseigner
$dir = 'data/documents';
# Récupération et affichage de la liste des images sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo '<ul class="telechargements">';
    foreach($files as $filename) {
        $file = $dir.'/'.$filename;
        $size = ceil(filesize($file)/1024);
        echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a> ('.$size.'Ko)</li>';
    }
    echo '</ul>';
}
else echo "Aucun document";
?>

Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#23 27/01/2010 20:36:20

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

merci Stéphane ;-)
Je l'ai adapté pour avoir les valeurs en Mo :

        $size = round((filesize($file)/1024000), 2);
        echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a> ('.$size.'Mio)</li>';

Je recherche encore pour afficher le type MIME
apparemment mime_content_type est déprécié avec PHP5 en faveur de finfo_file que je n'arrive pas à intégrer au code pour autant :-/

Dernière modification par antistress (27/01/2010 20:37:33)

Hors ligne

#24 27/01/2010 20:46:22

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 177
Site Web

Re : Page statique de téléchargement

oui c'est pour ça que je n'est pas mis le code pour mime_content_type


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#25 28/01/2010 15:24:40

antistress
Membre
Inscription : 28/12/2009
Messages : 354
Site Web

Re : Page statique de téléchargement

j'ai vu que l'extension "FileInfo" ne fait pas partie intégrante de PHP et qu'il faut l'installer manuellement sur le serveur mais qu'elle serait intégrée par défaut à partir de PHP 5.3 http://blog.pascal-martin.fr/post/php-5 … s-fichiers

Dernière modification par antistress (28/01/2010 15:26:01)

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2017 PluXml.org, tous droits réservés