Mysql
 sql >> Base de données >  >> RDS >> Mysql

Téléchargez l'image dans la base de données MYSQL et affichez-la en utilisant PHP avec Swift

Obtenir l'image de l'utilisateur

Voir http://php.net/manual/en/reserved.variables. fichiers.php et http://php.net/manual/en/features.file- upload.php et amis pour savoir comment utiliser $_FILES pour recevoir le téléchargement.

Une fois que vous avez l'image dans une variable, dites $jpg , n'utilisez aucune fonction d'encodage/décodage de texte ; cela ne fera que déformer les choses. Les différentes approches ci-dessous vous diront quoi faire pour éviter de trébucher sur des codes 8 bits.

Il existe trois façons de présenter l'image, chacune est quelque peu complexe

Stocker l'image dans la base de données ; montrant l'image en ligne

J'ai utilisé cette approche pour les vignettes, mais je ne la recommande pas pour les grandes images.

Stockez-le dans un MEDIUMBLOB dans un tableau, utilisez bin2hex() en PHP pour transformer l'image en chaîne. Ensuite, utilisez INSERT ... VALUES (UNHEX('...')) pour revenir au binaire côté serveur MySQL.

Après le rechargement, demandez au PHP de référence de dire quelque chose comme

$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";

Stocker l'image dans la base de données ; Script PHP pour générer l'image

Je l'utilise lorsque je veux utiliser les fonctions "image*" de PHP pour modifier l'image avant de l'afficher. Étant donné que cela est plus complexe que vous n'en avez probablement besoin, je ne ferai que survoler ce qui doit être fait.

Le code HTML de la page appellerait un autre script, avec les arguments dont vous avez besoin :

<img src=modify.php?this=stuff&that=stuff>

Puis dans modify.php , commencez par

header('Content-type: image/jpeg');

Et terminez par ceci (en supposant que vous construisez un JPEG):

imagejpeg($im);

Stocker l'image dans un fichier

C'est la méthode préférée par la plupart des grands sites Web la plupart du temps.

Si votre fichier provient d'un téléchargement, quelque chose comme ceci le déplace vers un meilleur chemin sans avoir à toucher le jpg.

$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);

Plus d'informations et d'exemples :http://php.net/manual/ fr/function.move-uploaded-file.php

Dans le HTML, générez simplement quelque chose comme ceci :

<img src=path/to/file>

Faites des recherches sur l'endroit où vous pouvez placer des images sur le chemin de votre serveur et assurez-vous que les autorisations sont adéquates.

Remarque :La base de données n'est pas impliquée dans la conservation de l'image, mais elle a une colonne pour contenir l'url "path/to/file" :

image VARCHAR(255) NOT NULL

Pour plus de discussion

  • Laquelle des 3 techniques souhaitez-vous approfondir ?
  • Voyons le code HTML que vous générez.
  • Voyons SHOW CREATE TABLE .