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
.