ホームページ  >  記事  >  バックエンド開発  >  PHPでデータベースに画像を追加する方法

PHPでデータベースに画像を追加する方法

王林
王林オリジナル
2019-09-20 17:53:226726ブラウズ

PHPでデータベースに画像を追加する方法

高可用性を確保するために、Baidu 開発者のクラウド コード スペースでは、ユーザーがコード スペースに画像を保存することはできません。CDN またはオブジェクト ストレージの使用は、料金が発生するだけでなく、より複雑になります。 img をデータベースに保存するかどうかは、パフォーマンスの問題が発生するという意見が多いですが、ぜひ試してみてください。

1. 3 つのファイルを準備します

PHPでデータベースに画像を追加する方法

最初のファイルは画像をデータベース文字として保存するために使用され、2 番目のファイルはデータベース文字として保存されます。 1 つは画像をデータベース文字として保存するために使用され、最初の php ファイルはデータベース文字を取得して画像を生成するために使用され、3 番目はファイル 1 で使用される画像です。

2. データベース設計

非常に長い文字列またはバイナリ データは、それぞれ TEXT (65535) と BLOB (64k) を使用して保存できますが、バイナリを使用して保存しようとすると失敗します。 . TEXT で保存しているのですが、base64 で暗号化された 500 kb を超える画像の文字数は 750,000 文字です。

TEXT を 1 つだけ保存することはできず、パフォーマンスに重大な問題を引き起こす可能性があるため、50,000 文字の長さを単位として N 個の部分に分割して保存されます。スプライシングを容易にするために imgid を記録します。

PHPでデータベースに画像を追加する方法

#3. 画像をデータベースに保存 [dm01_imgTobase64.php]

/*链接数据库*/

// 1.转为普通字符
$file = file_get_contents('test.jpg');
$base64_str = base64_encode($file);
$len = strlen($base64_str);
$step = ceil($len/50000);

for ($i=0; $i <$step ; $i++) { 
    $substr = substr($base64_str, $i*50000,50000);
    $sql = "INSERT INTO b64_img VALUES( null,1,1,$i,&#39;$substr&#39;) ";
    $res = mysqli_query($link,$sql);
}

4. 生成されたデータ

PHPでデータベースに画像を追加する方法

5. データベース レコードを読み取り、画像を生成します [dm02_getImg.php]

/*链接数据库*/


$sql = "SELECT * FROM b64_img WHERE imgid = 1 ORDER BY bakid ASC ";
$res =    mysqli_query($link,$sql);
$data = array();
$imgStr = &#39;&#39;;

while ($row = mysqli_fetch_assoc($res)) {
    $imgStr .= $row[&#39;bstr&#39;]    ;
}

$binaryStr = base64_decode($imgStr);
file_put_contents("ThisImg.jpg", $binaryStr);

6 、画像が正常に生成されました

PHPでデータベースに画像を追加する方法

推奨チュートリアル:

PHP ビデオ チュートリアル

以上がPHPでデータベースに画像を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。