Home  >  Article  >  Backend Development  >  PHP uses blob to access image information (including source code)

PHP uses blob to access image information (including source code)

烟雨青岚
烟雨青岚forward
2020-06-13 17:27:113807browse

PHP uses blob to access image information (including source code)

php uses blob to access image information (including source code)

BLOBYes A MySQL data type called a binary large object. As its name suggests, it is used to store large amounts of string data similar to MYSQL binary and VARBINARY types.

MySQL BLOB classification

MySQL BLOB type maximum storage length (bytes)

TINYBLOB (1)(2 ^ 8)

blob ((2 ^ 16)1)

MEDIUMBLOB ((2 ^ 24)1)

LONGBLOB ((2 ^ 32)1)

In this article In this tutorial, we learn how to insert and read MySQL BLOB fields using PHP.

(PS: T good PHP Q buckle: 276167802, verification: csl)

First, we need tocreate a MySQL table with a BLOB field.

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`)
)

Insert data

Insert picture information into the MySQL BLOB field.

1. Upload the image file.

2. Get the image attributes (image data, image type, etc.)

3. Insert the image file into BLOB.

PHP implementation script:

imageUpload.php

<?php
if(count($_FILES) > 0) {
if(is_uploaded_file($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;])) {
mysql_connect("localhost", "root", "");
mysql_select_db ("phppot_examples");
$imgData =addslashes(file_get_contents($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;]));
$imageProperties = getimageSize($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;]);
$sql = "INSERT INTO output_images(imageType ,imageData)
VALUES(&#39;{$imageProperties[&#39;mime&#39;]}&#39;, &#39;{$imgData}&#39;)";
$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>

After executing this script, the upload form will be displayed as follows:

Submit the form, PHP gets the file of the content image and stores it as binary data into a MySQL BLOB column.

Display pictures

To display BLOB images on the browser, we must:

1 , Obtain image data and type from MySQL BLOB

2. Set the type to image (image/jpg, image/gif, …) using the PHP header() function.

3. Output the image content.

imageView.php
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples") or die(mysql_error());
if(isset($_GET[&#39;image_id&#39;])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET[&#39;image_id&#39;];
$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);
?>

The above PHP code will display the picture stored in MySQL BLOB. From the HTML image tag we can refer to this PHP file with the corresponding image_id as parameter. For example:

<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />

The completed code is as follows:

listImages.php




List BLOB Images




<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />

Thank you for reading, I hope you will benefit a lot.

Original link: https://blog.csdn.net/u012275531/article/details/1791499

Recommended tutorial: "php tutorial"

The above is the detailed content of PHP uses blob to access image information (including source code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete