galerie photos - Forums de discussion

Navigation

Accueil du forum » PHP » galerie photos


Le sujet

mojchrisgalerie photos
Par mojchris, le Mardi 20/02/2007 à 14h19'11
90 messages
Bonjour,
J'ais récupéré un script d'upload permettant de télécharger et d'afficher une galerie photo.
Le problème vient du fait que l'upload echoue systématiquement. Les champs sont pourtant bien renseigné. Si quelqu'un saurait d'ou peut provenir le problème cela m'aiderait beaucoup.
Voici la portion de code
// Récupération du dossier dans lequel le fichier sera uploadé    //
$DESTINATION_FOLDER = $_POST["up/"];                            //
// Taille maximale de fichier, valeur en bytes                    //
$MAX_SIZE = 1000000;                                            //
// Récupération de l'url de retour                                //
$RETURN_LINK = $_SERVER['HTTP_REFERER'];                        //
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".jpg", ".bmp", ".gif");                                            //
// ############################################################ //
// Fonction permettant de créer un lien de retour automatique

function createReturnLink(){
    global $RETURN_LINK;
    echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
    global $AUTH_EXT;
    if(in_array($ext, $AUTH_EXT)){
        return true;
    }else{
        return false;
    }
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.

if(!empty($_FILES["file"]["name"])){
    
    // Nom du fichier choisi:
    $nomFichier = $_FILES["file"]["name"] ;
    // Nom temporaire sur le serveur:
    $nomTemporaire = $_FILES["file"]["tmp_name"] ;
    // Type du fichier choisi:
    $typeFichier = $_FILES["file"]["type"] ;
    // Poids en octets du fichier choisit:
    $poidsFichier = $_FILES["file"]["size"] ;
    // Poids en Kilo-octets du fichier choisit:
    $poidsFichierK = $poidsFichier/1024;
    // Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
    $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
    // Code de l'erreur si jamais il y en a une:
    $codeErreur = $_FILES["file"]["error"] ;
    // Extension du fichier
    $extension = strrchr($nomFichier, ".");
    
    // Si le poids du fichier est de 0 bytes, le fichier est
    // invalide (ou le chemin incorrect) => message d'erreur
    // sinon, le script continue.
    if($poidsFichier <> 0){
        // Si la taille du fichier est supérieure à la taille
        // maximum spécifiée => message d'erreur
        if($poidsFichier < $MAX_SIZE){
            // On teste ensuite si le fichier a une extension autorisée
            if(isExtAuthorized($extension)){
                // Ensuite, on copie le fichier uploadé ou bon nous semble.
                $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
                if($uploadOk){
                                        echo "L'upload a réussi !<br><br>";
                                        echo "Nom du Fichier : $nomFichier<br>";
                                        echo "Taille du Fichier : $poidsFichierK Ko<br>";
                                        echo "URL du Fichier : http://www.crazytchat.com/upload/up/<br><br>";
                                        echo "Aperçu:<br><br>";
                                        switch ($extension) { //Tu fais écrire du html par le php
                                        case ".jpeg": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".bmp": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".gif": echo "<IMG SRC='$nomFichier'>";break;
                                                default: echo "<IMG SRC='error/inconnu.gif'>"; }
                                        echo "<br><br>";
                                        echo(createReturnLink());
                }else{
                    echo("L'upload a échoué !<br><br>");
                    echo(createReturnLink());
                }
            }else{
                echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
                echo (createReturnLink()."<br>");
            }
        }else{
            $tailleKo = $MAX_SIZE / 100;
            echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
            echo (createReturnLink()."<br>");
        }        
    }else{
        echo("Le fichier choisi est invalide !<br>");
        echo (createReturnLink()."<br>");
    }
}else{
    echo("Vous n'avez pas choisi de fichier !<br>");
    echo (createReturnLink()."<br>");
}
?>

Merci d'avance
webide

________________
mojchris

Les réponses

mojchrisPar mojchris, le Lundi 16/04/2007 à 10h35'13
90 messages
Ou si c'est pus gérable, un moyen de créer automatiquement une liste déroulante de tous les dossiers créés. Si vous avez un tutoriel sur le sujet, cela m'aiderais aussi beaucoup.
Merci

________________
mojchris

mojchrisPar mojchris, le Mardi 24/04/2007 à 15h41'03
90 messages
J'ais résolu une partie du problème en créant la liste déroulante mais je n'arrives pas à trouver comment faire pour que cela deviennent des liens.
Pour la liste déroulante j'ais fait:
<select nom="cequetuveux"> 
<?php 


if ($handle opendir('upload/up/')) { 
     
    echo 
"Files:\n"

    
    while (
false !== ($file readdir($handle))) { 
        echo
'<option value="'.$file.'">'.$file.'</option>'
    } 

    
    while (
$file readdir($handle)) { 
        echo 
"$file\n"
    } 

    
closedir($handle); 

?> 
</select> 

________________
mojchris

mojchrisPar mojchris, le Mardi 24/04/2007 à 21h11'10
90 messages
J'ais déjà bien avancé avec la liste déroulante car maintenant elle fonctionnes et me rediriges vers le dossier souhaité.
Voici d'ailleurs le code
<html>
<head>
<script>
function Lien() {
    i = document.Choix.Liste.selectedIndex;
    if (i == 0) return;
    url = document.Choix.Liste.options[i].value;
    parent.location.href = url;
}
</script>
    <title></title>
</head>

<body>
<FORM NAME="Choix">
<SELECT NAME="Liste" onChange="Lien()">
<?php


if ($handle opendir('upload/up/')) {
    
    echo 
"Files:\n";

    
    while (
false !== ($file readdir($handle))) {
        echo
'<option value="'.$file.'">'.$file.'</option>';
    }

    
    while (
$file readdir($handle)) {
        echo 
"$file\n";
    }

    
closedir($handle);
}
?>
</select>
</FORM>

et pour le visionnage (car pour le moment il m'ouvres le dossier mais sans fichier pour afficher les photos ça bloques) j'ais pensé utiliser un fichier interactif pour les visionner
<html>
<head>
</head>


<body background="images/fd.gif">
<?php include("images.class.php"); ?>
<?php


$images 
= new images();
$images->repertoire '$pseudo';
$images->nb_par_ligne 3;
$images->afficher_liste();


?>
</body>
</html>    

et en dernier voici le fichier images.class.php gérant l'affichage
<?php


class images {


var 
$repertoire;
var 
$nb_par_ligne;


function 
ajouter_image($image,$nom) {
if (
is_dir($this->repertoire)) {
   if (
copy($image$this->repertoire "/" $nom)) return true;
    else return 
false;
  } else return 
false;
}



function 
lister_repertoire() {
  
$liste = array();
  if (
is_dir($this->repertoire)) {
    if (
$pointeur opendir($this->repertoire)) {
      while ((
$fichier readdir($pointeur)) !== false) {
        if (!
is_dir($this->repertoirte "/" $fichier)) {
          
$liste[] = $fichier;
        }
      }
      
closedir($pointeur);
      return 
$liste;
    } else return 
false;
  } else return 
false;
}


function 
liste_select() {
  
$liste $this->lister_repertoire();
  for (
$i 0$i count($liste); $i++) {
    echo 
"  <option value=\"$this->repertoire/$liste[$i]\">$liste[$i]</option>\n";
  }
}


function 
afficher_liste() {
  
$liste $this->lister_repertoire();
  echo 
"<table summary=\"table d'images\">\n";
  for (
$i 0$i count($liste); $i++) {
    
$nom explode("."$liste[$i]);
    
$nom str_replace("_"" "$nom[0]);
    
$nom str_replace("-"" "$nom);
    
$nom strtoupper(substr($nom01)) . substr($nom1);
    if (
round($i/$this->nb_par_ligne) == ($i/$this->nb_par_ligne)) echo "  <tr>\n";
    echo 
"    <td align=\"center\">" $this->afficher_image($liste[$i]) . "<br></td>\n";
    if (
round(($i+1)/$this->nb_par_ligne) == (($i+1)/$this->nb_par_ligne) || ($i+2) > count($liste)) echo "  </tr>\n";
  }
  echo 
"</table>\n";
}


function 
afficher_image($fichier) {
  return 
"<img width=\"250px\" src=\"" $this->repertoire "/" $fichier "\" alt=\"" $fichier " - " round((filesize($this->repertoire"/" $fichier)/1024), 2) . " ko\">";
}




}


?>

Le problème vient surtout de là
echo'<option value="'.$file.'">'.$file.'</option>';
comment envoyer la personne et que la galerie s'ouvres avec les photos choisies

________________
mojchris

Pages

Réponses les plus anciennes... 123 ...Réponses les plus récentes

A lire également

- Les conditions générales d'utilisation du site

Top-sites membres

Dark Lord Center | -18 pointsSweet Gwendoline | -23 pointsMob - Tuning | -23 pointsAnnuaire - agence-duweb.com | -23 points

Discussions récentes dans les forums

Sujet Forum
rerPhpBB bug d'horloge ?
Sujet posté par rer le 09/01/2009 à 10h40'27
Le comptoir » Le bar
f6netJe recherche des partenaires
Sujet posté par f6net le 08/01/2009 à 09h56'46
Internet » Référencement, Régies, Annuaires
depanmonpcEchange de liens site depannage informatique.
Sujet posté par depanmonpc le 07/01/2009 à 16h48'11
Le comptoir » Echange de liens / Recherche de partenaires
xersesRe: compression d'images
Réponse postée par xerses le 07/01/2009 à 00h29'37
Graphisme / Photographie » Photographies
tienoRe: IE 7 VS Firefox 2
Réponse postée par tieno le 04/01/2009 à 18h05'36
Internet » Autres sites à voir
rootRe: Espace-Membre : pb connexion
Réponse postée par root le 02/01/2009 à 16h47'50
Développement » PHP
xersesRe: probleme de fenêtre [Réglé]
Réponse postée par xerses le 01/01/2009 à 20h16'20
Net-Pratique.fr » Informations
ced51Re: liens , sport Mécanique
Réponse postée par ced51 le 27/12/2008 à 12h18'48
Le comptoir » Echange de liens / Recherche de partenaires
ced51pages
Sujet posté par ced51 le 26/12/2008 à 17h44'42
Net-Pratique.fr » Support
rerjoyeux_noel._gp.pps
Sujet posté par rer le 24/12/2008 à 10h08'30
Le comptoir » Le bar
Membres
Pseudo:
Pass: Mémoriser ?
Problème d'identificationInscription gratuite
Tribune libre
CNIL: 1098091
Connectés: 10