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

Méta Annuaire | 1 pointsMob - Tuning | 0 pointsSweet Gwendoline | -1 pointsS'entraîner à Villers-Bretonneux | -3 points

Discussions récentes dans les forums

Sujet Forum
raptorRe: Le jeu flash : Hélico
Réponse postée par raptor le 27/11/2008 à 20h39'51
Le comptoir » Le bar
tienoRe: IE 7 VS Firefox 2
Réponse postée par tieno le 26/11/2008 à 14h54'54
Internet » Autres sites à voir
tienoRe: Echange de liens
Réponse postée par tieno le 23/11/2008 à 13h55'24
Le comptoir » Echange de liens / Recherche de partenaires
touretEchange De Liens
Sujet posté par touret le 13/11/2008 à 08h58'09
Net-Pratique.fr » Suggestions
xersesRe: espace membres 1.2
Réponse postée par xerses le 09/11/2008 à 18h57'14
Développement » PHP
unitRe: Vous cherchez un travail simple sur Internet ?
Réponse postée par unit le 03/11/2008 à 15h53'53
Internet » Sites de ressources
froogyRe: Un ptit jeu
Réponse postée par froogy le 26/10/2008 à 16h40'03
Le comptoir » Le bar
rerRe: Sarbacane ou html ?
Réponse postée par rer le 23/10/2008 à 16h11'03
Développement » (X)HTML / CSS
1cyrilRe: Clic droit interdit [Réglé]
Réponse postée par 1cyril le 19/10/2008 à 19h26'02
Développement » PHP
xersesRe: Espace-Membre : pb connexion
Réponse postée par xerses le 13/10/2008 à 12h41'06
Développement » PHP
Membres
Pseudo:
Pass: Mémoriser ?
Problème d'identificationInscription gratuite
Tribune libre
CNIL: 1098091
Connectés: 24