Heim > Backend-Entwicklung > PHP-Tutorial > PHP使用BLOB存取图片信息实例

PHP使用BLOB存取图片信息实例

WBOY
Freigeben: 2016-06-23 13:35:00
Original
3181 Leute haben es durchsucht

  • PHP使用BLOB存取图片信息实例
  • BLOB介绍
  • mysql BLOB类型
  • 创建数据库
  • PHP文件转二进制代码
  • HTML代码
  • 读取二进制图片
  • php完整代码
  • HTML代码
  • PHP使用BLOB存取图片信息实例

    BLOB介绍

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。

    mysql BLOB类型

    MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
    Nach dem Login kopieren
    类型 大小(单位:字节)
    TinyBlob 最大255
    Blob 最大65K
    MediumBlob 最大16M
    LongBlob 最大4G
    linux修改etc/my.cnf[mysqld]max_allowed_packet = 16M //不同于[mysqldump]下的max_allowed_packet
    Nach dem Login kopieren

    注意: blob是mysql数据库保留字,请务必不要用于字段名

    创建数据库

    CREATE TABLE IF NOT EXISTS `myimg` ( `imgid` tinyint(3) NOT NULL AUTO_INCREMENT, `imgtype` varchar(25) NOT NULL DEFAULT '', `imgblob` mediumblob NOT NULL, PRIMARY KEY (`imgid`) )
    Nach dem Login kopieren

    PHP文件转二进制代码

    数据库读取更新插入都是一样的,就不写了,这里只写PHP上传图片转二进制的关键代码

    <?php  if(count($_FILES) > 0) {      if(is_uploaded_file($_FILES['upimg']['tmp_name'])) {    // 转成二进制    $imgBlob =addslashes(file_get_contents($_FILES['upimg']['tmp_name']));  }  
    Nach dem Login kopieren

    HTML代码

    上传文件表单必须定义enctype

    enctype="multipart/form-data" 
    Nach dem Login kopieren

    完整代码

            上传文件到Blob
    
    Nach dem Login kopieren

    读取二进制图片

    在浏览器上显示BLOB图像,我们必须:
    1、从MySQL BLOB获得图像数据和类型
    2、将类型设置为图像(image/jpg, image/gif, …)使用PHP header()函数。
    3、输出图像内容。

    php完整代码

    文件名:imageView.php

    <?php  $conn = mysql_connect("localhost", "root", "");  mysql_select_db("myimg") or die(mysql_error());  if(isset($_GET['image_id'])) {     $sql = "SELECT imgtype,imgblob FROM myimg WHERE imgid=".$_GET['imgid'];     $result = mysql_query("$sql") or die("<b>Error:</b>SQL语句错误<br/>".mysql_error());     $row = mysql_fetch_array($result);     header("Content-type: " . $row["imageType"]);     echo $row["imageData"];  }  mysql_close($conn);  ?>
    Nach dem Login kopieren

    HTML代码

    <img  src="imageView.php?image_id=<?php echo $row["imageId"]; ? alt="PHP使用BLOB存取图片信息实例" >" />
    Nach dem Login kopieren

    感谢浏览收看本文,希望可以对php开发者有帮助。
    PHP BloB完整实例参考网络文章
    ??

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Empfehlungen
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage