站长图库

php使用blob存取图片的信息(含源码)

 发布时间 2020-06-23 14:50:18 热度 138

 Tag标签:  phpblob存取图片

php使用blob存取图片的信息(含源码)


php使用blob存取图片的信息(含源码)

BLOB是一种MySQL数据类型,称为二进制大对象。正如它的名字它是用来存储类似MYSQL二进制和VARBINARY类型的、大量的字符串数据。

MySQL BLOB分类

MySQL BLOB类型 最大存储长度(字节)

TINYBLOB (1)(2 ^ 8)

blob ((2 ^ 16)1)

MEDIUMBLOB ((2 ^ 24)1)

LONGBLOB ((2 ^ 32)1)

在这篇教程中,我们学习如何使用PHP插入和读取MySQL BLOB字段。

(PS:T不错的PHP Q扣峮:276167802,验证:csl)

首先,我们需要创建一个MySQL表与一个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`)
)

插入数据

将图片信息插入MySQL BLOB字段中。

1、上传图像文件.

2、获取图像属性(图像数据、图像类型等等。)

3、图像文件插入BLOB。

PHP实现脚本:

imageUpload.php

<?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>
</BODY>
</HTML>

执行这个脚本后上传表单将显示如下:

提交表单,PHP获取内容图像的文件并将其作为二进制数据存储到MySQL BLOB列。

显示图片

在浏览器上显示BLOB图像,我们必须:

1、从MySQL BLOB获得图像数据和类型

2、将类型设置为图像(image/jpg, image/gif, …)使用PHP header()函数。

3、输出图像内容。

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);
?>

上面的PHP代码将显示MySQL BLOB存储的图片。从HTML图像标签我们可以参考这个PHP文件与相应image_id作为参数。例如:

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

完成代码如下:

listImages.php

<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples");
$sql = "SELECT imageId FROM output_images ORDER BY imageId DESC";
$result = mysql_query($sql);
?>
<HTML>
<HEAD>
    <TITLE>List BLOB Images</TITLE>
    <link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<?php
while($row = mysql_fetch_array($result)) {
?>
<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" /><br/>
<?php
}
mysql_close($conn);
?>
</BODY>
</HTML>

感谢大家的阅读,希望大家收益多多。



评论(0)条

    站长图库

    站长素材 - 建站资源分享平台

    猜你喜欢
    蓝色新材料生产厂家官网模板

    蓝色新材料生产厂家官网模板

    HTML模版 207 2020-06-02

    蓝色新材料生产厂家官网模板,DIV+CSS布局设计,全套模板,包括首页、关于我们、产品中心、公司动态、精品案例、行业动态...

    仿迪恩电影美剧影视类Discuz x3.2模板 商业版

    仿迪恩电影美剧影视类Discuz x3.2模板 商业版

    Discuz!模版 472 2019-09-08

    安装环境:整站程序采用PHP+MYSQL架构,内核使用的是Discuz x 3.2源码介绍:一款仿迪恩电影美剧影视类Di...

    米酷影视源码6.2.8版本_影视站源码,增加三套模板都在慢慢完善,修复所有功能

    米酷影视源码6.2.8版本_影视站源码,增加三套模板都在慢慢完善,修复所有功能

    行业整站 429 2020-03-06

    米酷影视管理系统是一套专为不同需求的站长而设计的影视管理系统,灵活,方便,人性化设计简单易用是最大的特色,是快速架设视频...

    jQuery带音效旋转式切换幻灯片

    jQuery带音效旋转式切换幻灯片

    图片特效 147 2020-01-17

    jQuery带音效旋转式切换幻灯片是一款类似一个旋转按钮,通过点击按钮的相应区域可以使幻灯片以旋转的方式来切换图片,非常...