Page 1 sur 1

créer des liens pour téléchargé les fichiers

Posté : 13 déc. 2005, 14:03
par tigrou44_
Bonjour, avec mon scriptja liste des fichiers d'un répertoire mais j'aimerais qu'ils soit téléchargeable. Merci d'avance
<?php

  $repertoire = opendir("livraison");

  while ($entree = readdir($repertoire)) {
    if ($entree != "." && $entree != "..")
      $tFichiers[] = filemtime("livraison/".$entree)."+".$entree;
       }

  closedir($repertoire);

  rsort($tFichiers);

  for ($cpt = 0; $cpt < sizeof($tFichiers); $cpt++) {
    $tVals = explode("+", $tFichiers[$cpt]);
    
    echo "[".date("d-m-Y H:i",$tVals[0])."] <B>".$tVals[1]."</B><BR>\n";
    
   }

?>

Posté : 13 déc. 2005, 15:08
par iclo
Je ne comprends pas trop où est le problême...
Il te suffit d'afficher un lien html pour chaque fichier, au lieu de seulement afficher le nom du fichier.

Posté : 13 déc. 2005, 17:55
par Invité
Je ne comprends pas trop où est le problême...
Il te suffit d'afficher un lien html pour chaque fichier, au lieu de seulement afficher le nom du fichier
C'est exactement ce que je veut faire mais j'utilise la fonction "href" pour crée rdes liens mais a chaque fois ca plante alors j'aurais voulut savoir la syntaxe exact dans le code autour de la variable. merci d'avance

Posté : 13 déc. 2005, 17:58
par mere-teresa
Tu arrives à avoir du HTML et ça plante quand tu cliques ? Ou bien ça plante avant ?

Si tu as le HTML, donne nous le code HTML que tu as (voir la source dans le menu Affichage, puis copier-coller)

Posté : 13 déc. 2005, 18:17
par Invité
En faite je viens d'une page sécurisé avec un mot de passe. Puis ensuite je doit lister et mettre à disposition des fichiers, ces fichiers change constament. Donc en faites le processus marche bien mais dès que je rajoute la fonction href et que j'essaie de nouveau il met une erreur a la ligne ou je vient de rajouté le href. Le truc c'est que je ne sait pas ou le mettre exactement autour de la variable. Mon but est d'avoir automatiquement la possibilité de télécharger les fichiers présent dan smon répertoire sans créer des liens a chaque fois.
<?php 

$repertoire = opendir("livraison"); 

while ($entree = readdir($repertoire)) { 
if ($entree != "." && $entree != "..") 
$tFichiers[] = filemtime("livraison/".$entree)."+".$entree; 
} 

closedir($repertoire); 

rsort($tFichiers); 

for ($cpt = 0; $cpt < sizeof($tFichiers); $cpt++) { 
$tVals = explode("+", $tFichiers[$cpt]); 

echo "[".date("d-m-Y H:i",$tVals[0])."] <B>".$tVals[1]."</B><BR>\n"; 

} 

?>

Posté : 14 déc. 2005, 10:05
par Invité
up

Posté : 14 déc. 2005, 10:13
par Cyrano
Tu fais un "up" mais tu ne sembles pas vraiment intéressé à ce qu'on t'aide : mere-teresa t'a demandé un détail important auquel tu n'as pas répondu et je vais te le demander différement mais la suite en dépend tout autant.

Pour résoudre un problème de programmation, il faut savoir de quelles données on part, à quoi on veut arriver, ce qu'on fait pour ça et ce qu'on obtient en réalité : ça donne des éléments permettant de cerner l'endroit précis où se trouve l'éventuelle erreur.

En clair, tu as une liste de fichiers et de répertoires, tu en veux la liste : avec le code tel que tu nous l'as montré plus tôt, tu obtiens quoi (copier/coller de la source html générée, au moins un extrait) ? Et à la place tu voudrais obtenir quoi (mets un exemple) ?

Posté : 14 déc. 2005, 10:37
par tigrou44
Tu fais un "up" mais tu ne sembles pas vraiment intéressé à ce qu'on t'aide : mere-teresa t'a demandé un détail important auquel tu n'as pas répondu et je vais te le demander différement mais la suite en dépend tout autant.

Pour résoudre un problème de programmation, il faut savoir de quelles données on part, à quoi on veut arriver, ce qu'on fait pour ça et ce qu'on obtient en réalité : ça donne des éléments permettant de cerner l'endroit précis où se trouve l'éventuelle erreur.

En clair, tu as une liste de fichiers et de répertoires, tu en veux la liste : avec le code tel que tu nous l'as montré plus tôt, tu obtiens quoi (copier/coller de la source html générée, au moins un extrait) ? Et à la place tu voudrais obtenir quoi (mets un exemple)
Désolé j'essaie de faire au mieux je commence tous juste. Avec mon code j'obtiens cela(j'arrive sur ma page qui me liste mes fichiers):

Liste des fichiers disponible sur le serveur:
[08-12-2005 16:59] ddd.doc
[08-12-2005 10:26] easyphp1-8_setup.exe
[06-12-2005 16:28] trajet.htm
[02-12-2005 16:50] trash(1).JPG
[02-12-2005 14:28] Ecoutez Hit West Nantes en direct.url
[02-12-2005 11:35] Ordonnancement prod.VSD
[03-10-2005 14:53] Run VNC Viewer.lnk


Maintenant j'aimerais obtenir la même chose mais lorsque l'on clique dessus on puisse telecharger ou faire un enregistrer sous ce qui est pas possible actuellement

le code de ma page complet:
<?php
// J'ai choisi le mot de passe "kangourou"

if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
    // On se crée une variable $mot_de_passe avec le mot de passe entré
    $mot_de_passe = $_POST['mot_de_passe'];
}
else // La variable n'existe pas encore
{
    $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}


if ($mot_de_passe == "kangourou") // Si le mot de passe est bon
{
// On affiche la page cachée.
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Serveur</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h2>Liste des fichiers disponible sur le serveur:</h2>
   
             
        
<?php

  $repertoire = opendir("livraison");

  while ($entree = readdir($repertoire)) {
    if ($entree != "." && $entree != "..")
      $tFichiers[] = filemtime("livraison/".$entree)."+".$entree;
       }

  closedir($repertoire);

  rsort($tFichiers);

  for ($cpt = 0; $cpt < sizeof($tFichiers); $cpt++) {
    $tVals = explode("+", $tFichiers[$cpt]);
    
    echo "[".date("d-m-Y H:i",$tVals[0])."] <B>".$tVals[1]."</B><BR>\n";
    
   }

?>         
       
        <hr />
        
        <p>
        Cette page est réservée
        </p>
    </body>
</html>

<?php
}

else // le mot de passe n'est pas bon
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Page protégée par mot de passe</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
<p>Veuillez entrer le mot de passe :</p>
<form action="protection.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
<p>Cette page est réservée.</p>
    </body>
</html>

<?php

} // Fin du else

// Fin du code :)
?>

Posté : 14 déc. 2005, 10:48
par Cyrano
Heureusement que je t'ai donné des détails sur ce dont on avait besoin pour t'aider ... :? On dirait que tu as lu en diagonale et que tu t'es précipité sur du code à afficher sans trop t'attarder aux détails. J'ai précisé par exemple : "source html générée" : si tu ne saisis pas la signification d'une question, ne te sens pas obligé de faire semblant de comprendre et demande des précisions.

As-tu essayé de faire ceci:
//...
echo "[".date("d-m-Y H:i",$tVals[0])."] <B><a href=\"".$tVals[1]."\">".$tVals[1]."</a></B><BR>\n";
//...

Posté : 14 déc. 2005, 11:02
par tigrou44
Heureusement que je t'ai donné des détails sur ce dont on avait besoin pour t'aider ... On dirait que tu as lu en diagonale et que tu t'es précipité sur du code à afficher sans trop t'attarder aux détails. J'ai précisé par exemple : "source html générée" : si tu ne saisis pas la signification d'une question, ne te sens pas obligé de faire semblant de comprendre et demande des précisions.

As-tu essayé de faire ceci:
PHP:
//...
echo "[".date("d-m-Y H:i",$tVals[0])."] <B><a href=\"".$tVals[1]."\">".$tVals[1]."</a></B><BR>\n";
//...
Pour l'intant en faite la page est en local sur mon ordinateur avec easy php. Avec le bout de code que tu ma refilé j'ai bien les liens maintenant. Actuellement je ne peut toujous pas les téléchargé je tombe sur une page "la page est introuvable" . Je travaille dessus.. Et oui je sait pas ce qu'est le "source html générée" (désolé je suis un noob du php)

Posté : 14 déc. 2005, 11:05
par Cyrano
...donne nous le code HTML que tu as (voir la source dans le menu Affichage, puis copier-coller)
Une page html générée par PHP a un code source : c'est ça qu'on veut voir

Posté : 14 déc. 2005, 11:32
par mere-teresa
Tu regardes ta page dans Internet Explorer, ou Mozilla, ou autre.
Tu regardes le menu en haut, tu choisis Affichage. Dans ce menu tu choisis "Source" ou "Code source de la page".
Tu auras un fichier texte.
Tu le copies et tu le colles ici.

Merci.

Posté : 14 déc. 2005, 11:40
par tigrou44
Désolé et merci a vous deux pour ces explication.

voila le code html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Serveur</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h2>Liste des fichiers disponible sur le serveur:</h2>
   
             
        
[08-12-2005 16:59] <B><a href="ddd.doc">ddd.doc</a></B><BR>
[08-12-2005 10:26] <B><a href="easyphp1-8_setup.exe">easyphp1-8_setup.exe</a></B><BR>
[06-12-2005 16:28] <B><a href="trajet.htm">trajet.htm</a></B><BR>
[02-12-2005 16:50] <B><a href="trash(1).JPG">trash(1).JPG</a></B><BR>
[02-12-2005 14:28] <B><a href="Ecoutez Hit West Nantes en direct.url">Ecoutez Hit West Nantes en direct.url</a></B><BR>
[02-12-2005 11:35] <B><a href="Ordonnancement prod.VSD">Ordonnancement prod.VSD</a></B><BR>
[03-10-2005 14:53] <B><a href="Run VNC Viewer.lnk">Run VNC Viewer.lnk</a></B><BR>
         
       
        <hr />
        
        <p>
        Cette page est réservée
        </p>
    </body>
</html>

Posté : 14 déc. 2005, 11:44
par mere-teresa
Quelques soucis :
  1. Tes noms de fichiers sont mauvais : ils contiennent des espaces.
  2. Dans ton href, commence par mettre l'adresse absolue, qui commence par http://adressedetonsite/dossier/fichier.ext
[/color]