Upload d'images en php

Signaler
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011
-
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011
-
salut je travail sur mon projet de fin d'année et là j'essaie d'uploader des images!! mais j'arrive pas à les stocker ou plutôt à les afficher dans le dossier de destination et sa me fatigueeeeee!! :( quant à la base de données qui contiendra les infos sur l'images et l'url je ne l'ai pas encore faite puisque l'upload en lui mm ne fonctionne pas. Pouvez-vous m'aidez??? voici mon code:
<form method="post" action="image.php"  enctype="multipart/form-data">


</form>

[code=php]<?php
//partie de recuperation de l'image:
if(!empty($_FILES))// pas de vide
  {  require("imgClass.php"); 
  //imgclass contient la fonction creerMin qui permet de creer une miniature de l'image uploadé
  
 $img= $_FILES['img'];
 $ext= strtolower(substr ($img['name'],-3));//afficher l'extention
 $allow_ext = array('jpg','png','gif');//autorisation des extention jpg,png,gif
if(in_array($ext, $allow_ext)){ move_uploaded_file($img['tmp_name'],"images/"$img['name']);
//deplacement du fichier dans un dossier "images"
Img::creerMin("images/"$img['name'],"images/min",$img['name'],200,100);
  }
else{
  $erreur ="votre fichier n'est pas une image";
  }

}

?>

 COTE PHP:

<?php
if(isset($erreur)){
echo $erreur;
  }
?>

<?php
//afficher les differente miniature du dossier min
$dos = "images/min";
$dir = opendir($dos);
while($file = readdir($dir)){ //parcourir lensemble des fichier du dossier
    
 $allow_ext = array('jpg','png','gif');
 $ext= strolower(substr ($file,-3)); 
 if(in_array($ext, $allow_ext)){?> 
   " />
     <?php
 }
 
 }
?>


MERCI POUR VOTRE AIDE!!

9 réponses

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
bonsoir

quelques erreurs ...
$ext= strolower(substr ($file,-3));
$ext= strtolower(substr ($file,-3));


comme ça
ça doit le faire
a++

<form method="post" action="image.php"  enctype="multipart/form-data">


</form>

<?php

if(file_exists('images')){
}else{
mkdir('images');
}

if(file_exists('images/min')){
}else{
mkdir('images/min');
}

//partie de recuperation de l'image:
if(!empty($_FILES['img'])){
echo '';
print_r($_FILES['img']);
echo '

';
// pas de vide
require("imgClass.php"); 
//imgclass contient la fonction creerMin qui permet de creer une miniature de l'image uploadé

  
$img=$_FILES['img'];
$ext= strtolower(substr($img['name'],-3));//afficher l'extention
$allow_ext = array('jpg','png','gif');//autorisation des extention jpg,png,gif
if(in_array($ext, $allow_ext)){
move_uploaded_file($img['tmp_name'],'images/'.$img['name']);
//deplacement du fichier dans un dossier "images"
Img::creerMin('images/'.$img['name'],'images/min',$img['name'],200,100);
}else{
$erreur ="votre fichier n'est pas une image";
}
}


if(isset($erreur)){
echo $erreur;
}else{
}

//afficher les differente miniature du dossier min
$dos = "images/min";
//$dos = "images";
if($dir=opendir($dos)){

while($file = readdir($dir)){ //parcourir lensemble des fichier du dossier
    
 $allow_ext = array('jpg','png','gif');
 $ext= strtolower(substr ($file,-3)); 
 if(in_array($ext, $allow_ext)){ 
 echo  '
';
 }else{
   //rien
   }
 
  }

}else{
//empty dir
}
?>



Bonne programmation !
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011

MERCI cod57!! je l'essai et je te fai signe ;)
s'est gentil de ta part:)
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011

voila ce ke je reçois :

'; print_r($_FILES['img']); echo ''; // pas de vide require("imgClass.php"); //imgclass contient la fonction creerMin qui permet de creer une miniature de l'image uploadé $img=$_FILES['img']; $ext= strtolower(substr($img['name'],-3));//afficher l'extention $allow_ext = array('jpg','png','gif');//autorisation des extention jpg,png,gif if(in_array($ext, $allow_ext)){ move_uploaded_file($img['tmp_name'],'images/'.$img['name']); //deplacement du fichier dans un dossier "images" Img::creerMin('images/'.$img['name'],'images/min',$img['name'],200,100); }else{ $erreur ="votre fichier n'est pas une image"; } } if(isset($erreur)){ echo $erreur; }else{ } //afficher les differente miniature du dossier min $dos = "images/min"; //$dos = "images"; if($dir=opendir($dos)){ while($file = readdir($dir)){ //parcourir lensemble des fichier du dossier $allow_ext = array('jpg','png','gif'); $ext= strtolower(substr ($file,-3)); if(in_array($ext, $allow_ext)){ echo '
'; }else{ //rien } } }else{ //empty dir } ?>

:s:s:s:
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
j'ai testé chez moi comme ça
avec une class à moi
c'est ok tu peux tester ...

image.php


<form method="post" action="image.php"  enctype="multipart/form-data">


</form>

<?php



class Image{

public static $useGD = true; // On utilise la librairie GD ?
    public static $quality = 90; 

/**
* Permet de redimensionner/cropper une image
* @param $img String Chemin absolu de l'image d'origine
* @param $dest String Chemin absolu de l'image générée (.jpg)
* @param $largeur Int Largeur de l'image générée, si 0 cette valeur sera calculé en fonction de la hauteur
* @param $hauteur Int Hauteur de l'image générée, si 0 cette valeur sera calculé en fonction de la largeur
* Si largeur et hauteur = 0 l'image gardera son format d'origine mais sera convertie en JPG
**/
public static function resize($img,$dest,$largeur=0,$hauteur=0){
// On récupère les dimensions de l'image
$dimension=getimagesize($img);
$ratio = $dimension[0] / $dimension[1];	// Et son ratio

// On trouve les dimension finale 
// (si on a passé 0 en paramètre c'est que l'on veut que le paramètre s'adapte pour conserver le ratio)
if($largeur==0 && $hauteur==0){ $largeur = $dimension[0]; $hauteur = $dimension[1]; }
else if($hauteur==0){ $hauteur = round($largeur / $ratio); }
else if($largeur==0){ $largeur = round($hauteur * $ratio); }

// Si on doit "cropper" l'image on cherche de cb de px on doit décaler l'image miniatures pour la centrer
if($dimension[0]>($largeur/$hauteur)*$dimension[1] ){ $dimY=$hauteur; $dimX=round($hauteur*$dimension[0]/$dimension[1]); $decalX=($dimX-$largeur)/2; $decalY=0;}
if($dimension[0]<($largeur/$hauteur)*$dimension[1]){ $dimX=$largeur; $dimY=round($largeur*$dimension[1]/$dimension[0]); $decalY=($dimY-$hauteur)/2; $decalX=0;}
if($dimension[0]==($largeur/$hauteur)*$dimension[1]){ $dimX=$largeur; $dimY=$hauteur; $decalX=0; $decalY=0;}

// On crée l'image avec la librairie GD
if(self::$useGD){
$miniature =imagecreatetruecolor ($largeur,$hauteur);
if(substr($img,-4)==".jpg" || substr($img,-4)==".JPG"){$image = imagecreatefromjpeg($img); }
if(substr($img,-4)==".png" || substr($img,-4)==".PNG"){$image = imagecreatefrompng($img); }
if(substr($img,-4)==".gif" || substr($img,-4)==".GIF"){$image = imagecreatefromgif($img); }

imagecopyresampled($miniature,$image,-$decalX,-$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);
imagejpeg($miniature,$dest,self::$quality);

return true;

// Ou on utilise imagemagick
}else{
$cmd = '/usr/bin/convert -resize '.$dimX.'x'.$dimY.' "'.$img.'" "'.$dest.'"';
shell_exec($cmd);

$cmd = '/usr/bin/convert -gravity Center -quality '.self::$quality.' -crop '.$largeur.'x'.$hauteur.'+0+0 -page '.$largeur.'x'.$hauteur.' "'.$dest.'" "'.$dest.'"';
shell_exec($cmd);
}
         return true;
}
}




if(file_exists('images')){
}else{
mkdir('images');
}

if(file_exists('images/min')){
}else{
mkdir('images/min');
}

//partie de recuperation de l'image:
if(!empty($_FILES['img'])){
echo '';
print_r($_FILES['img']);
echo '

';
// pas de vide
//require("imgClass.php"); 
//imgclass contient la fonction creerMin qui permet de creer une miniature de l'image uploadé

  
$img=$_FILES['img'];
$ext= strtolower(substr($img['name'],-3));//afficher l'extention
$allow_ext = array('jpg','png','gif');//autorisation des extention jpg,png,gif
if(in_array($ext, $allow_ext)){
move_uploaded_file($img['tmp_name'],'images/'.$img['name']);
//deplacement du fichier dans un dossier "images"
//Image::creerMin('images/'.$img['name'],'images/min',$img['name'],200,100);
Image::resize('images/'.$img['name'],'images/min/'.$img['name'],360,240); 
//resize($img,$dest,$largeur=0,$hauteur=0){
}else{
$erreur ="votre fichier n'est pas une image";
}
}


if(isset($erreur)){
echo $erreur;
}else{
}

//afficher les differente miniature du dossier min
$dos = "images/min";
//$dos = "images";
if($dir=opendir($dos)){

while($file = readdir($dir)){ //parcourir lensemble des fichier du dossier
    
 $allow_ext = array('jpg','png','gif');
 $ext= strtolower(substr ($file,-3)); 
 if(in_array($ext, $allow_ext)){ 
 echo  '<hr>';
 }else{
   //rien
   }
 
  }

}else{
//empty dir
}
?>



Bonne programmation !
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011

oui encore moii cod57 si j'insiste a terminer sa ce soir s'est pck sa ma pris assez de temps et si j'ai pû terminer sa le reste du site s'est rapidos!!

tjrs le mm blem , refuse de compiler sa me fais resortir le code une foix que j'appuie sur envoyer :
($largeur/$hauteur)*$dimension[1] ){ $dimY=$hauteur; $dimX=round($hauteur*$dimension[0]/$dimension[1]); $decalX=($dimX-$largeur)/2; $decalY=0;} if($dimension[0]<($largeur/$hauteur)*$dimension[1]){ $dimX=$largeur; $dimY=round($largeur*$dimension[1]/$dimension[0]); $decalY=($dimY-$hauteur)/2; $decalX=0;} if($dimension[0]==($largeur/$hauteur)*$dimension[1]){ $dimX=$largeur; $dimY=$hauteur; $decalX=0; $decalY=0;} // On crée l'image avec la librairie GD if(self::$useGD){ $miniature =imagecreatetruecolor ($largeur,$hauteur); if(substr($img,-4)==".jpg" || substr($img,-4)==".JPG"){$image = imagecreatefromjpeg($img); } if(substr($img,-4)==".png" || substr($img,-4)==".PNG"){$image = imagecreatefrompng($img); } if(substr($img,-4)==".gif" || substr($img,-4)==".GIF"){$image = imagecreatefromgif($img); } imagecopyresampled($miniature,$image,-$decalX,-$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]); imagejpeg($miniature,$dest,self::$quality); return true; // Ou on utilise imagemagick }else{ $cmd = '/usr/bin/convert -resize '.$dimX.'x'.$dimY.' "'.$img.'" "'.$dest.'"'; shell_exec($cmd); $cmd = '/usr/bin/convert -gravity Center -quality '.self::$quality.' -crop '.$largeur.'x'.$hauteur.'+0+0 -page '.$largeur.'x'.$hauteur.' "'.$dest.'" "'.$dest.'"'; shell_exec($cmd); } return true; } } if(file_exists('images')){ }else{ mkdir('images'); } if(file_exists('images/min')){ }else{ mkdir('images/min'); } //partie de recuperation de l'image: if(!empty($_FILES['img'])){ echo '

';
print_r($_FILES['img']);
echo '

'; // pas de vide //require("imgClass.php"); //imgclass contient la fonction creerMin qui permet de creer une miniature de l'image uploadé $img=$_FILES['img']; $ext= strtolower(substr($img['name'],-3));//afficher l'extention $allow_ext = array('jpg','png','gif');//autorisation des extention jpg,png,gif if(in_array($ext, $allow_ext)){ move_uploaded_file($img['tmp_name'],'images/'.$img['name']); //deplacement du fichier dans un dossier "images" //Image::creerMin('images/'.$img['name'],'images/min',$img['name'],200,100); Image::resize('images/'.$img['name'],'images/min/'.$img['name'],360,240); //resize($img,$dest,$largeur=0,$hauteur=0){ }else{ $erreur ="votre fichier n'est pas une image"; } } if(isset($erreur)){ echo $erreur; }else{ } //afficher les differente miniature du dossier min $dos = "images/min"; //$dos = "images"; if($dir=opendir($dos)){ while($file = readdir($dir)){ //parcourir lensemble des fichier du dossier $allow_ext = array('jpg','png','gif'); $ext= strtolower(substr ($file,-3)); if(in_array($ext, $allow_ext)){ echo ''; }else{ //rien } } }else{ //empty dir } ?>

bizarre non?? dsl je te fatigue ;)
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
je sais pas ... mais chez moi il fonctione nickel

ton serveur est il actif
sur quoi travailles tu
linux ,windows, wamp, easyphp, un serveur distant
as tu bien sauvé le fichier avec l'extension .php ->image.php
utilises tu
<?php
..
?>
on dirait que ton CODE n'est pas interpreté PAR PHP
as tu activé l'extension GD

Bonne programmation !
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011

je suis sur windows !! oui s'est ce que je remarque le php ne compile pas, concernant le wamp je compte l'utiliser pr créer une table d'infos associé aux images uploadée mais faudrais bien que ce dernier marche!

commen activer lextension GD??
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
installe wamp 2
tu clique sur
php_gd2
verifie que tout est actif

Bonne programmation !
Messages postés
7
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
17 mai 2011

salut j'ai toujours le probleme de compilation du code php pourtant j'ai activé le php_gd2 !!
quelqu'un peut il m'aider??