par
deborah » 04 avr. 2007, 13:45
Bonjour,
Je vous recontacte pour encore un petit problème sur mon uploader de photo
$id = $_POST['id'];
$_FILES['photo']['name']; //Le nom original du fichier, comme sur le disque du visiteur.
$_FILES['photo']['type']; //Le type du fichier. Par exemple, cela peut être "image/png".
$_FILES['photo']['size']; //La taille du fichier en octets.
$_FILES['photo']['tmp_name']; //L'adresse vers le fichier uploadé dans le répertoire temporaire.
$_FILES['photo']['error'];
$maxsize =$_POST['MAX_FILE_SIZE'];
$maxwidth = "600";
$maxheight= "400";
$nompage = $_POST['nom'];
$tab_select = adminDAO :: select($id);
$extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
//Vérification de l'extension de la photo
$extensions_upload = substr(strrchr($_FILES['photo']['name'], '.'),1);
//Récupération des dimension de la photo
$images_sizes = getimagesize($_FILES['photo']['tmp_name']);
//Générateur d'un mot de passe pour pouvoir le mettre a la fin du nom de la
//photo afin d'éviter d'écraser les autres photos d'un même hotel
$Cara = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXY0123456789"; // Caractére possible
$Nbrcara = 5; // Nombre de caractére dans le mod de passe
$Mdp="";
srand((double)microtime()*1000000);
for($i=0; $i<$Nbrcara;$i++){
$Mdp.= $Cara[rand()%strlen($Cara)];
}
//Vérification du transfert de la photo vers le tmp
if($_FILES['photo']['error']>0)
{
//Si il y a une erreur et si le nom de la page est norm
if($nompage == "norm")
{
VueAdmin :: Erreur_transfert($id);
}
//Si il y a une erreur et si le nom de la page est supe
else
{
VueSupeUser :: Erreur_transfert($id);
}
}
//Vérification du poids de la photo
else
if($_FILES['photo']['size']== 0)
{
if($nompage == "norm")
{
VueAdmin :: Erreur_poids($id);
}
else
{
VueSupeUser :: Erreur_poids($id);
}
}
//Vérification de l'extension de la photo
else
if (($images_sizes[0] > $maxwidth OR $images_sizes[1] > $maxheight) ||($images_sizes[0] ==NULL OR $images_sizes[1] ==NULL) )
{
if($nompage == "norm")
{
VueAdmin :: Erreur_taille($id);
}
else
{
VueSupeUser :: Erreur_taille($id);
}
}
else
if(in_array($extensions_upload,$extensions_valides))
{
//Récupération du nom de la photo avant l'extension
$name = explode('.',$_FILES['photo']['name']);
$nom_photo = $name[0];
}
else
{
if($nompage == "norm")
{
VueAdmin :: Erreur_extension($id);
}
else
{
VueSupeUser :: Erreur_extension($id);
}
}
$nom_photo = $name[0].$Mdp;
$nom = "../HTML/images/photo".$tab_select['0']['Nom_Hotel'].$Mdp.$_FILES['photo']['name'];
$resultat = move_uploaded_file($_FILES['photo']['tmp_name'],$nom);
$tab_ajout = adminDAO::ajout_photo($id,$nom_photo, $extensions_upload);
if($nompage == "norm")
VueAdmin :: Ajouter();
else
VueSupeUser :: Ajouter();
En fait mon probleme se situe avant l'insertion dans la base de données
Je voudrais que lorsqu'il rencontre un des problèmes (poids, taille, extension etc...) il me renvoye une erreur sans qu'il passe par l'ajout dans la base
Merci d'avance
Débo
Bonjour,
Je vous recontacte pour encore un petit problème sur mon uploader de photo
[php]
$id = $_POST['id'];
$_FILES['photo']['name']; //Le nom original du fichier, comme sur le disque du visiteur.
$_FILES['photo']['type']; //Le type du fichier. Par exemple, cela peut être "image/png".
$_FILES['photo']['size']; //La taille du fichier en octets.
$_FILES['photo']['tmp_name']; //L'adresse vers le fichier uploadé dans le répertoire temporaire.
$_FILES['photo']['error'];
$maxsize =$_POST['MAX_FILE_SIZE'];
$maxwidth = "600";
$maxheight= "400";
$nompage = $_POST['nom'];
$tab_select = adminDAO :: select($id);
$extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
//Vérification de l'extension de la photo
$extensions_upload = substr(strrchr($_FILES['photo']['name'], '.'),1);
//Récupération des dimension de la photo
$images_sizes = getimagesize($_FILES['photo']['tmp_name']);
//Générateur d'un mot de passe pour pouvoir le mettre a la fin du nom de la
//photo afin d'éviter d'écraser les autres photos d'un même hotel
$Cara = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXY0123456789"; // Caractére possible
$Nbrcara = 5; // Nombre de caractére dans le mod de passe
$Mdp="";
srand((double)microtime()*1000000);
for($i=0; $i<$Nbrcara;$i++){
$Mdp.= $Cara[rand()%strlen($Cara)];
}
//Vérification du transfert de la photo vers le tmp
if($_FILES['photo']['error']>0)
{
//Si il y a une erreur et si le nom de la page est norm
if($nompage == "norm")
{
VueAdmin :: Erreur_transfert($id);
}
//Si il y a une erreur et si le nom de la page est supe
else
{
VueSupeUser :: Erreur_transfert($id);
}
}
//Vérification du poids de la photo
else
if($_FILES['photo']['size']== 0)
{
if($nompage == "norm")
{
VueAdmin :: Erreur_poids($id);
}
else
{
VueSupeUser :: Erreur_poids($id);
}
}
//Vérification de l'extension de la photo
else
if (($images_sizes[0] > $maxwidth OR $images_sizes[1] > $maxheight) ||($images_sizes[0] ==NULL OR $images_sizes[1] ==NULL) )
{
if($nompage == "norm")
{
VueAdmin :: Erreur_taille($id);
}
else
{
VueSupeUser :: Erreur_taille($id);
}
}
else
if(in_array($extensions_upload,$extensions_valides))
{
//Récupération du nom de la photo avant l'extension
$name = explode('.',$_FILES['photo']['name']);
$nom_photo = $name[0];
}
else
{
if($nompage == "norm")
{
VueAdmin :: Erreur_extension($id);
}
else
{
VueSupeUser :: Erreur_extension($id);
}
}
$nom_photo = $name[0].$Mdp;
$nom = "../HTML/images/photo".$tab_select['0']['Nom_Hotel'].$Mdp.$_FILES['photo']['name'];
$resultat = move_uploaded_file($_FILES['photo']['tmp_name'],$nom);
$tab_ajout = adminDAO::ajout_photo($id,$nom_photo, $extensions_upload);
if($nompage == "norm")
VueAdmin :: Ajouter();
else
VueSupeUser :: Ajouter();
[/php]
En fait mon probleme se situe avant l'insertion dans la base de données
Je voudrais que lorsqu'il rencontre un des problèmes (poids, taille, extension etc...) il me renvoye une erreur sans qu'il passe par l'ajout dans la base
Merci d'avance
Débo