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

WBOY
풀어 주다: 2016-06-23 13:35:00
원래의
3152명이 탐색했습니다.

  • 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,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
    로그인 후 복사
    类型 大小(单位:字节)
    TinyBlob 最大255
    Blob 最大65K
    MediumBlob 最大16M
    LongBlob 最大4G
    linux修改etc/my.cnf[mysqld]max_allowed_packet = 16M //不同于[mysqldump]下的max_allowed_packet
    로그인 후 복사

    注意: 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`) )
    로그인 후 복사

    PHP文件转二进制代码

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

    <?php  if(count($_FILES) > 0) {      if(is_uploaded_file($_FILES['upimg']['tmp_name'])) {    // 转成二进制    $imgBlob =addslashes(file_get_contents($_FILES['upimg']['tmp_name']));  }  
    로그인 후 복사

    HTML代码

    上传文件表单必须定义enctype

    enctype="multipart/form-data" 
    로그인 후 복사

    完整代码

            上传文件到Blob        
    로그인 후 복사

    读取二进制图片

    在浏览器上显示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);  ?>
    로그인 후 복사

    HTML代码

    <img  src="imageView.php?image_id=<?php echo $row["imageId"]; ? alt="PHP使用BLOB存取图片信息实例" >" />
    로그인 후 복사

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

    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 추천
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿