Je ne vois pas l'erreur mais il y en a

msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - Modifié par msi79 le 27/07/2013 à 20:40
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 2 août 2013 à 14:12
salue j'ecris un code pour inserrer des images dans ma base de données . je reçois le message :L'insertion s est bien déroulée ! .mais rien ne ce passe dans la bdd.
merci de bien vouloir m'aider.
voici mon code :
<?php
//include('functions/declarant.func.php');
include('body/header.php');
include('body/menu.php');
?>
<?php

if(isset($_GET['id'])) $id = urldecode($_GET['id']);

if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre'])){
 $cat = strip_tags(trim($_POST['cat'])); 
  
    for($i = 1; $i <= $_POST['nbre']; $i++){

if(isset($_FILES['image'.$i]) && $_FILES['image'.$i]['error'] == 0 && isset($_POST['nbre'])){

  //Indique si le fichier a été téléchargé
  if(!is_uploaded_file($_FILES['image'.$i]['tmp_name']))
  echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
  else {
  //liste des extensions possibles    
  $extensions = array('/png', '/gif', '/jpg', '/jpeg');
 
  //récupère la chaîne à partir du dernier / pour connaître l'extension
  $extension = strrchr($_FILES['image'.$i]['type'], '/');
 
  //vérifie si l'extension est dans notre tableau            <em></em>
  if(!in_array($extension, $extensions))
   echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
  else {         
 
   //on définit la taille maximale
   define('MAXSIZE', 300000);        
   if($_FILES['image'.$i]['size'] > MAXSIZE)
      echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
   else {
    //connexion à la base de données
    try {
     $bdd = new PDO('mysql:host=localhost;dbname=------------', 'root', '');
    } catch (Exception $e) {
     exit('Erreur : ' . $e->getMessage());
    }
 
    //Lecture du fichier
    $image = file_get_contents($_FILES['image'.$i]['tmp_name']);
 
    $req = $bdd->prepare("INSERT INTO image(img, extension ,id_victime) VALUES(:image, :type , :id)");
    $req->execute(array(
     
     'image' => $image,
     'type' => $_FILES['image'.$i]['type']
     ));
 
    echo 'L\'insertion s est bien déroulée !';
    }
    }
   }
  
}

}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {
 color: #0000FF;
 font-weight: bold;
}
.Style4 {
 color: #990033;
 font-weight: bold;
}
.Style6 {color: #990000}
-->
</style>
</head>

<body>
<div class="DestinaireImage" align="center" >
<h1 align="center" class="subfooter  Style3">Enregistrement des Courriers </h1>

<form action="" method="post" enctype="multipart/form-data">
  <p> </p>
  <table width="570" height="95" border="0" align="center" bordercolor="#0000FF" > 
  <tr> <td width="200"><span class="Style4">Saisir le nombre de pages:</span></td> 
    <td width="360"><input name="nbre" type="text" size="1" maxlength="1" value="<?php if(isset($_POST['nbre']))echo $_POST['nbre'];?>"/></td> </tr> <tr> <td> </td> <td bordercolor="#0000FF"> <fieldset> <legend><span class="Style6">AJOUTER DES DOCUMENTS </span></legend>  
          <?php if(isset($_POST['bouton_submit']) && ($_POST['nbre'])){ extract($_POST); $nbre_photo = $nbre; for($j = 1; $j<= $nbre_photo; $j++){ echo'<input type="file" name="image'.$j.'" /><br/>'; } } ?> </fieldset> </td> </tr> <tr> <td> </td> <td><input type="submit" name="bouton_submit" value="envoyer" ></input></td> </tr></table>
</form>
</div>
<p> </p>
</body>
</html>

21 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
Modifié par f0xi le 2/08/2013 à 14:13
extrait le code de ton image comme ceci :

$image = base64_encode(file_get_contents($_FILES['image'.$i]['tmp_name']));
 


tu balance l'encodage base64 dans ta base, ensuite tu n'a plus qu'a faire des insertions CSS ou dans le SRC des tags img

<img src="data:image/jpg;base64,<?php echo $row['image64'];?>" alt=""/>


ou en CSS via background :
background-image:url(data:image/png;base64,<?php echo $row['image64'];?>);


tu peux même stocker le type en base, base64 etant du texte ... par contre, c'est chaud si ce sont de groooooosssssse image. autant les stocker sur le disque en clair (et accessoirement les protégé via un .htaccess).

________________________________________________________
[ besoin de câbles audio, vidèo, informatique pas cher ?]
0
Rejoignez-nous