Upload d'images en php

azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011 - 7 mai 2011 à 20:07
azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011 - 8 mai 2011 à 15:31
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!!
A voir également:

9 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 mai 2011 à 22:46
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 !
0
azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011
7 mai 2011 à 22:49
MERCI cod57!! je l'essai et je te fai signe ;)
s'est gentil de ta part:)
0
azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011
7 mai 2011 à 22:55
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:
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 mai 2011 à 23:09
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011
7 mai 2011 à 23:21
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 ;)
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 mai 2011 à 23:31
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 !
0
azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011
7 mai 2011 à 23:34
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??
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 mai 2011 à 23:46
installe wamp 2
tu clique sur
php_gd2
verifie que tout est actif

Bonne programmation !
0
azorkot Messages postés 7 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 17 mai 2011
8 mai 2011 à 15:31
salut j'ai toujours le probleme de compilation du code php pourtant j'ai activé le php_gd2 !!
quelqu'un peut il m'aider??
0
Rejoignez-nous