[RESOLU] Afficher une image

Mammouth du PHP | 643 Messages

13 déc. 2014, 19:02

Bonjour,
Je souhaite afficher les photos enregistrer dans ma bdd le formulaire marche sans soucis.
Mes photos son nomées 'nom'.
Actuellement ca m'affiche juste le nom de la photo je souhaite voir l'image, ca s'enregistre bien dans le dossier images/fullsize et dans le dossier images/min

J'ai essayer quelque chose comme ceci également mais ca m'affiche pas les photos
<img src="images/fullsize/" <?php echo $donnees['nom']; ?> >

Voici mon code:
<?php
   
   $erreurs = array(); 

   if(!empty($_POST)) {
	  
	if(!empty($_FILES))
{
	$avatar = $_FILES['avatar'];
	$avatar_name = $avatar['name'];
	$ext = strtolower(substr(strrchr($avatar_name,'.'),1));
	$ext_aut = array('jpg','jpeg','png','gif');
	
	function check_extension($ext,$ext_aut)
	{
		if(in_array($ext,$ext_aut))
		{
			return true;
		}
	}
	
	$valid = (!check_extension($ext,$ext_aut)) ? false : true;
	$erreur = (!check_extension($ext,$ext_aut)) ? 'Veuillez charger une image' : '';
	
	if($valid)
	{
		$max_size = 2000000;
		if($avatar['size']>$max_size)
		{
			$valid = false;
			$erreur = 'Fichier trop gros';
		}
	}
	
	if($valid)
	{
		if($avatar['error']>0)
		{
			$valid = false;
			$erreur = 'Erreur lors du transfert';
		}
	}
	
	if($valid)
	{
		$path_to_image = 'images/fullsize/';
		$path_to_min = 'images/min/';
		
		$filename = sha1(uniqid($avatar_name));
		
		$source = $avatar['tmp_name'];
		$target = $path_to_image . $filename. '.'. $ext;
		
		move_uploaded_file($source,$target);
		
		if($ext == 'jpg' || $ext == 'jpeg') {$im = imagecreatefromjpeg($path_to_image.$filename.'.'.$ext);}
		if($ext == 'png') {$im = imagecreatefrompng($path_to_image.$filename.'.'.$ext);}
		if($ext == 'gif') { $im = imagecreatefromgif($path_to_image.$filename.'.'.$ext);}
		
		$ox = imagesx($im);
		$oy = imagesy($im);
		
		$nx = 150;
		$ny = floor($oy *($nx/$ox));
		
		$nm = imagecreatetruecolor($nx,$ny);
		
		imagecopyresized($nm, $im, 0,0,0,0, $nx,$ny,$ox,$oy);
		
		imagejpeg($nm, $path_to_min.$filename.'.'.$ext);
		
		$nom_image = $filename.'.'.$ext;
		
		$req = $bdd->prepare('INSERT INTO upload(nom) VALUES(:nom)');
		$req->execute(array('nom'=>$nom_image));
		$req->closeCursor();
		
		$success = 'Upload ok';
	}
}
   
   
  
  //Verification titre
  if(empty($_POST['titre']))
  {
   $erreurs['titre'] = 'Renseigner un titre';
  }
  
   //Verification contenu
  if(empty($_POST['contenu']))
  {
   $erreurs['contenu'] = 'Renseigner un contenu';
  }
  
 


if( empty( $erreurs)  ){
	

   $req = $bdd->prepare('INSERT INTO actu (titre, contenu, nom) VALUES (:titre, :contenu, :nom)');   
   $retour= $req->execute(array(

          'titre'=>$_POST['titre'],
		  'contenu'=>$_POST['contenu'],
		  'nom'=>$nom_image
    ));
	echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
	<div class="alert alert-success okay" role="alert"> <i class="fa fa-smile-o"></i>
 Ta news à était correctement rajoutée </div></div></div>';

       
}else{//le tableau ne contient
echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
	<div class="alert alert-danger okay" role="alert">Renseignez les champs  vides</div></div></div>';
}

}//fin de la soumission du formulaire
?>


<!-- Le formulaire -->
<form action="news.php" method="post" enctype="multipart/form-data">

     <!-- titre -->
     <label>titre :</label>
     <input class="form-control" id="titre" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
     <?php if(isset($erreurs['titre'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['titre'].'</div>';?>
     
 	 <br>
     
     <!-- Contenu -->
     <label>Contenu :</label>
     <input class="form-control" id="contenu" type="text" name="contenu" value="<?php if(isset($_POST['contenu'])) echo $_POST['contenu'];?>" />
     <?php if(isset($erreurs['contenu'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['contenu'].'</div>';?>
 	 <br>
     
     
     <label>photo :</label>
     
    <input type="file" name="avatar" />
     

    <input class="btn-u" type="submit" value="ENVOYER">
    </form>
<!-- End formulaire -->


<!-- Deconnect -->
<a href="deconnexion.php" style="color:#e30059;text-decoration:underline;">Déconnexion de l'espace administrateur</a><br><br>


<?php
// On récupère tout le contenu de la table jeux_video
$listeactu = $bdd->query('SELECT * FROM actu');

// On affiche chaque entrée une à une
while ($donnees = $listeactu->fetch())
{
?>
    <p>
    <strong>actu numéro</strong> : <?php echo $donnees['id']; ?><br />
    <strong>titre</strong> : <?php echo $donnees['titre']; ?><br />
    <strong>contenu</strong> : <?php echo $donnees['contenu']; ?><br />
    <strong>photo</strong> : <?php echo  $donnees['nom']; ?><br />
   </p>
<?php
}
?>


Nestecha
Invité n'ayant pas de compte PHPfrance

14 déc. 2014, 01:17

Essaie en remplaçant :
<img src="images/fullsize/" <?php echo $donnees['nom']; ?> >
Par :
<img src="images/fullsize/<?php echo $donnees['nom']; ?>" >

Mammouth du PHP | 643 Messages

16 déc. 2014, 12:09

Re,
Donc j'ai réalisé mon petit truc tout marche sauf l'affichage de l'image.
Je reçois bien tout en bdd.
Les images s'enregistre dans le bon dossier mais je n'arrive pas a faire le echo de l'image dans ma boucle, voiçi mon code .
        <ul class="portfolio-filter text-center">
               <li><a class="btn btn-default active" href="#" data-filter="*">Tout</a></li>
                <li><a class="btn btn-default" href="#" data-filter=".photos">Photos</a></li>
                <li><a class="btn btn-default" href="#" data-filter=".videos">Videos</a></li>
                <li><a class="btn btn-default" href="#" data-filter=".press">Press</a></li>
            </ul><!--/#portfolio-filter-->


		  <?php
                    $listetour = $bdd->query('SELECT * FROM portfolio');
                    
                    while ($donnees = $listetour->fetch())
                    {
                    ?>

        
                <div class="portfolio-items">
                    <div class="portfolio-item  <?php echo $donnees['filtre']; ?> col-xs-12 col-sm-4 col-md-3">
                        <div class="recent-work-wrap">
                            <img class="img-responsive" src="images/portfolio/recent/<?php echo $donnees['image']; ?>" >
                            
                            <div class="overlay">
                                <div class="recent-work-inner">
                                    <h3><a href="#">TITRE</a></h3>
                                    <p>paragraphe</p>
                                </div> 
                            </div>
                        </div>
                    </div><!--/.portfolio-item-->

 
			  <?php
                    }
                    ?>  

                </div>



Je met en plus la partie traitement de l'image:
<?php
session_start();
if(!empty($_POST))
{
	extract($_POST);
	$validation=true;
	
	if(isset($_FILES['image']) AND $_FILES['image']['error']==0)
	{
		$infos_image=pathinfo($_FILES['image']['name']);
		$extension_image=$infos_image['extension'];
		$ext_autorisees=array('jpg','jpeg','png');
		if($_FILES['image']['size']>2000000)
		{
			$validation=false;
			$erreur_image='L\'image doit être inférieure à 2Mo';
		}
		elseif(!in_array($extension_image,$ext_autorisees))
		{
			$validation=false;
			$erreur_image='L\'image doit être au format jpg, jpeg ou png';
		}
	}
	else
	{
		$validation=false;
		$erreur_image='Indiquez l\'image que vous souhaitez publier';
	}
	
	if(empty($filtre))
	{
		$validation=false;
		$erreur_filtre='nommer un filtre';
	}
	
	if(empty($contenu))
	{
		$validation=false;
		$erreur_contenu='Il manque un contenu';
	}
	
	if($validation)
	{
		$image=$_FILES['image']['name'];
		$tmp_name=$_FILES['image']['tmp_name'];
		include('bdd.php');
		$req=$bdd->prepare('INSERT INTO portfolio (filtre,contenu,image) VALUES (:filtre,:contenu,:image)');
		$req->execute(array(
			'filtre'=>$filtre,
			'contenu'=>$contenu,
			'image'=>$image
		));
		

		
		$req->closeCursor();
		move_uploaded_file($tmp_name,"images/portfolio/recent/$image");
		$valide='L\'envoi de l\'image a bien été effectué !';
		unset($nom);
		unset($auteur);
	}
}
?>

Merci à vous encore

Mammouth du PHP | 643 Messages

16 déc. 2014, 12:14

Bah désole en fait j'avais oublier que le tout était dans un sous dossier, dsl.
Merci encore