Maison > Article > développement back-end > PHP utilise un blob pour accéder aux informations sur l'image (y compris le code source)
php utilise blob pour accéder aux informations sur l'image (y compris le code source)
BLOBOui Un type de données MySQL appelé grand objet binaire. Comme son nom l'indique, il est utilisé pour stocker de grandes quantités de données de chaîne similaires aux types binaires MYSQL et VARBINARY.
Classification MySQL BLOB
Longueur de stockage maximale du type MySQL BLOB (octets)
TINYBLOB (1)(2 ^ 8)
blob ((2 ^ 16)1)
MEDIUMBLOB ((2 ^ 24)1)
LONGBLOB ((2 ^ 32)1)
Dans cet article Dans Dans ce tutoriel, nous apprenons à insérer et lire des champs MySQL BLOB à l'aide de PHP.
(PS : T Nice boucle PHP Q : 276167802, Vérification : csl)
Tout d'abord, nous devons créer une table MySQL avec un champ BLOB .
CREATE TABLE IF NOT EXISTS `output_images` ( `imageId` tinyint(3) NOT NULL AUTO_INCREMENT, `imageType` varchar(25) NOT NULL DEFAULT '', `imageData` mediumblob NOT NULL, PRIMARY KEY (`imageId`) )
Insérer des données
Insérer des informations sur l'image dans le champ MySQL BLOB.
1. Téléchargez le fichier image.
2. Obtenez les attributs de l'image (données d'image, type d'image, etc.)
3. Insérez le fichier image dans BLOB.
<?php if(count($_FILES) > 0) { if(is_uploaded_file($_FILES['userImage']['tmp_name'])) { mysql_connect("localhost", "root", ""); mysql_select_db ("phppot_examples"); $imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name'])); $imageProperties = getimageSize($_FILES['userImage']['tmp_name']); $sql = "INSERT INTO output_images(imageType ,imageData) VALUES('{$imageProperties['mime']}', '{$imgData}')"; $current_id = mysql_query($sql) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysql_error()); if(isset($current_id)) { header("Location: listImages.php"); }}} ?> <HTML> <HEAD> <TITLE>Upload Image to MySQL BLOB</TITLE> <link href="imageStyles.css" rel="stylesheet" type="text/css" /> </HEAD> <BODY> <form name="frmImage" enctype="multipart/form-data" action="" method="post" class="frmImageUpload"> <label>Upload Image File:</label><br/> <input name="userImage" type="file" class="inputFile" /> <input type="submit" value="Submit" class="btnSubmit" /> </form> </div> </BODY> </HTML>Après avoir exécuté ce script, le formulaire de téléchargement s'affichera comme suit :
Pour afficher l'image BLOB sur le navigateur, il faut :
imageView.php
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples") or die(mysql_error());
if(isset($_GET['image_id'])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id'];
$result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>"
. mysql_error());
$row = mysql_fetch_array($result);
header("Content-type: " . $row["imageType"]);
echo $row["imageData"];
}
mysql_close($conn);
?>
Le code PHP ci-dessus affichera l'image stockée dans MySQL BLOB. A partir de la balise d'image HTML, nous pouvons faire référence à ce fichier PHP avec l'image_id correspondant comme paramètre. Par exemple :
<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />Le code complété est le suivant :
listImages.php
List BLOB Images <img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />
Merci d'avoir lu, j'espère que vous bénéficierez d'un parcelle.
Lien original : https://blog.csdn.net/u012275531/article/details/1791499
Tutoriel recommandé : "
Tutoriel phpCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!