Aller au contenu

Sujets conseillés

Posté

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 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 : [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.

Posté

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 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 : [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.

Posté

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

  • 1 month later...
Posté

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/

Posté

 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 ?

  • 2 semaines plus tard...
Posté

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($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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...