webide Posté 10 Mars 2007 Posté 10 Mars 2007 Bonjour, J'ais un souci avec un script d'upload. Lorsque je vais dans l'espace membre, chez chaque membre j'ais un lien vers sa galerie photos Voici le code de la pge d'upload // Définition des variable globales, modifiables à volonté //// ############################################################ //// Récupération du dossier dans lequel le fichier sera uploadé //$DESTINATION_FOLDER = $_POST["up/"]; //// Taille maximale de fichier, valeur en bytes //$MAX_SIZE = 10000000; //// 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(".htm", ".html", ".jpg", ".txt", ".png", // ".bmp", ".gif", ".php", ".php3", ".rar", ".ace", ".zip", ".mp3", ".wav"); //// ############################################################ //// Fonction permettant de créer un lien de retour automatiquefunction 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 : [url="http://URL"]http://URL[/url] du site/upload/up/$nomFichier<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; case ".png": echo "<IMG SRC='$nomFichier'>";break; case ".jpg": echo "<IMG SRC='$nomFichier'>";break; case ".rar": echo "<IMG SRC='error/archive.gif'>";break; case ".ace": echo "<IMG SRC='error/archive.gif'>";break; case ".zip": echo "<IMG SRC='error/archive.gif'>";break; case ".php": echo "<IMG SRC='error/web.gif'>";break; case ".htm": echo "<IMG SRC='error/web.gif'>";break; case ".html": echo "<IMG SRC='error/web.gif'>";break; case ".php3": echo "<IMG SRC='error/web.gif'>";break; case ".mp3": echo "<IMG SRC='error/son.gif'><bgsound src='$nomFichier'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break; case ".wav": echo "<IMG SRC='error/son.gif'><bgsound src='$nomFichier'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";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 / 1000; 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>");}?> et le code de la galerie html><head><link rel="stylesheet" type="text/css" href="style-gal.css"><TITLE><? echo(":: Galerie d'images du service d'upload de VOTRE NOM / PSEUDO ::"); ?></TITLE></head><body><!-- DEBUT DU SCRIPT --><script language="JavaScript1.2">/*SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT[url="http://www.editeurjavascript.com"]http://www.editeurjavascript.com[/url]*/function ejs_nodroit() { alert('Désolé, le clic droit a été désactivé sur cette page. '); return(false); }document.oncontextmenu = ejs_nodroit;</script><!-- FIN DU SCRIPT --><body bgcolor="#000000"><script LANGUAGE="JavaScript">table_photo = new Array;table_noms = new Array;table_type = new Array;<?$a = 0;$handle = opendir("up"); while (($file = readdir())!=false) { clearstatcache(); $extension = strrchr($file, "."); if($file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp")) { // RECHERCHE DU FICHIER echo "table_photo[$a] = 'up/$file';"; // RECHERCHE DU TYPE DE FICHIER $file_type = strrchr($file, "."); $file_type = str_replace(".", "", $file_type); $file_type = strtoupper($file_type); echo "table_type[$a] = '$file_type';"; // RECHERCHE DU NOM : $file_name = strtolower($file); $file_name = str_replace(".jpg", "", $file_name); $file_name = str_replace(".jpeg", "", $file_name); $file_name = str_replace(".gif", "", $file_name); $file_name = str_replace(".png", "", $file_name); echo "table_noms[$a] = '$file_name';"; $a++; } }closedir($handle); ?>function showing_photos(num) { if(document.getElementById) { diaporama_fin = ""; if(num!=0) diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>"; if(num!=(table_photo.length-1)) diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>"; document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>"; } }window.onload = new Function("showing_photos(0)")</SCRIPT><DIV align="center" ID="affichage_photos"></DIV><a href = "index.php">Retourner au service d'upload ?<a/></body></html> mais là je vois toutes les photos uploadée au lieu de voir les photos de la personne pourtant dans le fichier uploader.php on doit envoyer des photos avec le pseudo+1 ou 2etc.... pour différencier les différentes personnes. Si quelqu'un saurait comment faire au mieux cela m'aiderais beaucoup. Merci d'avance **EDIT Modérateur (TheRec)** Merci d'utiliser la balise CODEBOX à la place de CODE pour présenter un code long.
webide Posté 11 Mars 2007 Auteur Posté 11 Mars 2007 J'ais eu beau tester rien y fait donc je vais faire selon la première idée c'est à dire en créant un dossier via mkdir. J'ais fait les modifications necessaires pour qu'ils inscrivent leur pseudo (pour créer le dossier de destination) mais j'ais du faire un impair car l'upload échoue (les droits sont bons) Sur la page d'upload il doit inscrire son pseudo et envoyer plusieurs fichiers Voici déjà la page d'index pour l'upload <TITLE><? echo(":: Service d'upload de $pseudo ::"); ?></TITLE></head><body><body bgcolor="#A10300"><link rel="stylesheet" type="text/css" href="style.css"><h3></h3><p align="center"><b><font face="Comic Sans MS">Uploader des fichiers</font></b></p><p align="left"><b><font face="Comic Sans MS">Règles :</font></b></p><p align="center">Votre fichier ne doit pas dépasser les 100KO et doit commencer par votre pseudo</p><p align="center">Les formats autorisés sont : *gif , *jpg , *png , *bmp </p><br><center>Votre pseudo<input name="pseudo" type="text" id="pseudo"> </center><br><form name="upload" enctype="multipart/form-data" method="post" action="up/upload.php"> <p align="center">Photo 1 <input type="file" name="file"> <p align="center">Photo 2 <input type="file" name="file"> <p align="center">Photo 3 <input type="file" name="file"> <p align="center">Photo 4 <input type="file" name="file"> <p align="center">Photo 5 <input type="file" name="file"> <p align="center">Photo 6 <input type="file" name="file"> </p> <p align="center"><br> <input type="submit" name="bouton_submit" value="Envoyer le fichier"> </p> <a href = "galerie.php">Voir la galerie d'images ?</a></form> Le ficihier uploader.php gérant l'upload mkdir ($pseudo, 0777);// Récupération du dossier dans lequel le fichier sera uploadé$DESTINATION_FOLDER = 'up/'.$pseudo.'/'; //// Taille maximale de fichier, valeur en bytes //$MAX_SIZE = 10000000; //// 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",".png", // ".bmp", ".gif"); //// ############################################################ //// Fonction permettant de créer un lien de retour automatiquefunction 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 : [url="http://www.crazytchat.com/upload/up/$pseudo/$nomFichier<br><br>";"]http://www.crazytchat.com/upload/up/$...t;br>";[/url] 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; case ".png": echo "<IMG SRC='$nomFichier'>";break; case ".jpg": 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 / 1000; 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>");}?> Et la galerie pour visionner <?$a = 0;$handle = opendir("up/$pseudo");while (($file = readdir())!=false) { clearstatcache(); $extension = strrchr($file, "."); if($file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp")) { // RECHERCHE DU FICHIER echo "table_photo[$a] = 'up/$pseudo/$file';"; // RECHERCHE DU TYPE DE FICHIER $file_type = strrchr($file, "."); $file_type = str_replace(".", "", $file_type); $file_type = strtoupper($file_type); echo "table_type[$a] = '$file_type';"; // RECHERCHE DU NOM : $file_name = strtolower($file); $file_name = str_replace(".jpg", "", $file_name); $file_name = str_replace(".jpeg", "", $file_name); $file_name = str_replace(".gif", "", $file_name); $file_name = str_replace(".png", "", $file_name); echo "table_noms[$a] = '$file_name';"; $a++; } }closedir($handle); ?>function showing_photos(num) { if(document.getElementById) { diaporama_fin = ""; if(num!=0) diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>"; if(num!=(table_photo.length-1)) diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>"; document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>"; } }window.onload = new Function("showing_photos(0)")</SCRIPT> Si quelqu'un pouvait m'aiguiller sur les erreurs commises. Merci d'avance **EDIT Modérateur (TheRec)** Merci d'utiliser la balise CODEBOX à la place de CODE pour présenter un code long.
webide Posté 11 Mars 2007 Auteur Posté 11 Mars 2007 Ca y est j'ais bien avancé, j'arrives a créer des sossiers dans le dossier up et a uploader des photos mais le problème vient du fait que les photos au lieu d'aller dans le dossier spécifié vont dans le dossier up c'est à dire au lieu d'aller sur up/monpseudo, elles vont dans up.je suis persuadé que le problème se situe là mkdir ("".$_POST[pseudo], 0777);// Récupération du dossier dans lequel le fichier sera uploadé$DESTINATION_FOLDER = ""; Si quelqu'un pouvait éclairer ma lanterne merci d'avance
webide Posté 15 Avril 2007 Auteur Posté 15 Avril 2007 Je m'excuses de revenir à la charge avec ce problème mais j'ais essayé je ne sais combien de solutions sans succès. Le mieux que je puisses arriver et que les photos arrives dans le dossier up mais pas moyen de les mettre dans le dossier pseudo. J'ais lu pleins de tutoriels sur le sujet mais rien qui correspondes à ce que je cherches exactement j'ais essayé en faisant define('UPLOAD_DIRECTORY', "./$_POST['pseudo']"); ou define('UPLOAD_DIRECTORY', './'.$_POST['pseudo']); ou define('UPLOAD_DIRECTORY', './up/'.$_POST['pseudo']); J'arrêtes là les exemples. Au mieux il me marques que les photos ont été déplacées correctement mais les mets dans upload/up/ au lieu de upload/up/pseudo/
Kent Posté 15 Avril 2007 Posté 15 Avril 2007 mkdir ("".$_POST['pseudo'], 0777); // // Récupération du dossier dans lequel le fichier sera uploadé$DESTINATION_FOLDER = "up/".$_POST['pseudo']."/"; Comme ceci tout simplement non ?
webide Posté 24 Avril 2007 Auteur Posté 24 Avril 2007 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()"><?phpif ($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 <?phpclass 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($nom, 0, 1)) . substr($nom, 1); 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant