Maison > développement back-end > Problème PHP > Comment ajouter des images à la base de données en php

Comment ajouter des images à la base de données en php

王林
Libérer: 2023-02-24 14:56:01
original
6782 Les gens l'ont consulté

Comment ajouter des images à la base de données en php

Afin de garantir une haute disponibilité, le Cloud Code Space de Baidu Developer ne permet pas aux utilisateurs d'enregistrer des images dans l'espace de code. L'utilisation d'un CDN ou d'un stockage d'objets est non seulement payante, mais également compliquée à utiliser. , nous avons donc réfléchi à la question de savoir s'il fallait stocker img dans la base de données, même si de nombreuses personnes disent que cela entraînerait des problèmes de performances, vous devriez l'essayer.

1. Préparez trois fichiers

Comment ajouter des images à la base de données en php

Le premier est utilisé pour stocker les images sous forme de caractères de base de données, le second Le premier Le fichier php est utilisé pour obtenir les caractères de la base de données et générer des images, et le troisième est l'image utilisée dans le fichier 1.

2. Conception de la base de données

Des chaînes très longues ou des données binaires peuvent être enregistrées respectivement à l'aide de TEXT (65535) et BLOB (64k), mais les tentatives d'enregistrement à l'aide de données binaires ont échoué. . J'utilise TEXTE pour l'enregistrer, mais une image cryptée en base64 de plus de 500 Ko a une longueur de 750 000 caractères !

Un seul TEXTE ne peut pas être enregistré, et cela peut également entraîner de graves problèmes de performances, il est donc divisé en N parties et enregistré Ici, la longueur de 50 000 caractères est utilisée comme unité. Enregistrez imgid pour faciliter l’épissage.

Comment ajouter des images à la base de données en php

3. Enregistrez l'image dans la base de données [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);
}
Copier après la connexion

Données générées<🎜. >

Comment ajouter des images à la base de données en php

5. Lire les enregistrements de la base de données et générer des images [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);
Copier après la connexion

6 , images générées avec succès

Comment ajouter des images à la base de données en php

Tutoriel recommandé :

Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal