PHP は BLOB を使用して画像情報の例にアクセスします

WBOY
リリース: 2016-06-23 13:35:00
オリジナル
3151 人が閲覧しました

  • BLOBを使用して画像情報にアクセスするPHPの例
  • BLOBの紹介
  • mysql BLOBタイプ
  • データベースを作成する
  • PHPファイルをバイナリコードに変換する
  • HTMLコード
  • バイナリ イメージ
  • php の完全なコードを読み取る
  • HTML コード
  • BLOB を使用して画像情報にアクセスする PHP の例

    BLOB の紹介

    バイナリ ラージ オブジェクトである BLOB (バイナリ ラージ オブジェクト) は、バイナリ ファイルを格納できるコンテナです。コンピュータでは、BLOB はデータベースにバイナリ ファイルを格納するために使用されるフィールド タイプであることがよくあります。 BLOB は大きなファイルです。通常、BLOB は画像またはサウンド ファイルです。そのサイズのため、特別な方法 (アップロード、ダウンロード、データベースへの保存など) で処理する必要があります。 Eric Raymond 氏によると、BLOB を処理する主なアイデアは、ファイル プロセッサ (データベース マネージャーなど) にファイルが何であるかではなく、それをどのように処理するかを考慮させることです。ただし、一部の専門家は、このビッグ データ オブジェクトの処理方法は諸刃の剣であり、大きすぎるバイナリ ファイルを保存するとデータベースのパフォーマンスが低下するなどの問題が発生する可能性があると強調しています。データベースに大きなマルチメディア オブジェクトを保存することは、BLOB を処理するアプリケーションの典型的な例です。

    mysql BLOB 型

    MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
    ログイン後にコピー

    型サイズ (単位: バイト) TinyBlob最大 255Blob最大 65K中Blob最大16MLongBlob最大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. PHP header() 関数を使用して、タイプを画像 (image/jpg、image/gif、…) に設定します。
    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"]; ?>" />
    ログイン後にコピー

    この記事を閲覧していただきありがとうございます。PHP 開発者に役立つことを願っています。

    PHP BloB の完全なサンプル リファレンス オンライン記事
    ??

    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のおすすめ
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート