2017-08-05 4 views
1

J'ai redimensionné l'image que je reçus de l'utilisateur en utilisant le code ci-dessous:Comment mémoriser le résultat dans la base de données mysql php imagejpg()

$imagedata = getimagesize($_FILES['uploadedimage']['tmp_name']); 
      $newwidth = $imagedata['0']/3; 
      $newheight = $imagedata['1']/3; 
      $thumb = imagecreatetruecolor($newwidth, $newheight); 
      $source = imagecreatefromjpeg($_FILES['uploadedimage']['tmp_name']); 
      // Resize 
      imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $imagedata['0'], $imagedata['1']); 

      // Output and free memory 
      ob_start(); 
      imagejpeg($thumb); 
      echo '<img src="data:image/jpeg;base64,' . base64_encode(ob_get_clean()) . '">'; 
      imagedestroy($thumb); 

maintenant je suis en utilisant cette ligne

echo '<img src="data:image/jpeg;base64,' . base64_encode(ob_get_clean()) . '">'; 

pour afficher l'image mais à la place, je veux la stocker dans ma base de données. Je ne suis pas capable de comprendre. J'ai cherché dans beaucoup de forum et n'ai pas trouvé n'importe quelle réponse. S'il vous plaît aider.

+1

Vous ne devez pas inclure la requête db et insérer ici. Comment devrait-il insérer? –

+0

@AnandPandey oui ce code est là je ne l'ai pas ajouté ici et je sais comment faire une requête et l'insérer dans DB. Le point ici est comment puis-je le stocker dans DB comme dans quelle valeur ai-je envoyé des valeurs. "INSERT INTO db (image) VALUES (????)"; –

Répondre

0

J'ai fixé en ajoutant cette ligne de code où l'écho est écrit:

$image = addslashes(ob_get_contents()); 

maintenant $ image peut être envoyer normalement à DB en utilisant la requête.

1

Vous ne devriez pas stocker l'image, ce que vous pouvez faire est de stocker les images dans un chemin connu, puis de stocker l'identifiant ou le nom unique dans la DB, alors pour récupérer vous cherchez l'ID dans la DB et construire le chemin à nouveau.

Is it a good practice to save a base64 string on the Database?

+1

Je ne veux pas le stocker dans DB comme base64 qui est la seule façon que j'ai trouvé sur le web pour le convertir en format visible grâce à la recherche. Je veux savoir comment puis-je stocker le résultat de imagejpeg() dans MySQL DB comme type de données blob. –

+0

C'est ok, jetez un oeil à cette question peut-être aider, https://stackoverflow.com/questions/7052655/insert-blobs-in-mysql-databases-with-php –

+0

merci, mais ce n'est pas ma question. Merci pour l'aide en tout cas. si par tout moyen je ne suis pas clair à travers ma question s'il vous plaît faites le moi savoir. Je vais essayer de le décrire mieux. –

0

Vous ne stockez pas de blobs sauf si vous devez vraiment, vraiment.

Souhaitez-vous tous les jours plutôt sauvegarde ...

  • une base de données de 100 Mo et 50 Go de fichiers (différentiellement, en utilisant rsync)
  • ou une base de données SQL 50Go?