So fügen Sie Bilder in PHP zur Datenbank hinzu

王林
Freigeben: 2023-02-24 14:56:01
Original
6743 Leute haben es durchsucht

So fügen Sie Bilder in PHP zur Datenbank hinzu

Um eine hohe Verfügbarkeit zu gewährleisten, erlaubt der Cloud Code Space von Baidu Developer den Benutzern nicht, Bilder im Codespace zu speichern. Die Verwendung von CDN oder Objektspeicher ist nicht nur kostenpflichtig, sondern auch kompliziert zu verwenden Deshalb haben wir darüber nachgedacht, ob img in der Datenbank gespeichert werden soll. Obwohl viele Leute sagen, dass dies zu Leistungsproblemen führt, sollten Sie es versuchen.

1. Bereiten Sie drei Dateien vor

So fügen Sie Bilder in PHP zur Datenbank hinzu

Die erste wird zum Speichern von Bildern als Datenbankzeichen verwendet, die zweite PHP-Datei wird verwendet, um Datenbankzeichen abzurufen und Bilder zu generieren, und die dritte ist das in Datei 1 verwendete Bild.

2. Datenbankdesign

Extra lange Zeichenfolgen oder Binärdaten können mit TEXT (65535) bzw. BLOB (64 KB) gespeichert werden, aber Versuche, mit Binärdaten zu speichern, schlugen fehl . Ich verwende TEXT zum Speichern, aber ein Base64-verschlüsseltes Bild von mehr als 500 KB hat eine Zeichenlänge von 750.000!

Nur ​​ein TEXT kann nicht gespeichert werden und kann auch zu schwerwiegenden Leistungsproblemen führen. Daher wird er in N Teile aufgeteilt und gespeichert. Hier wird die Länge von 50.000 Zeichen als Einheit verwendet. Zeichnen Sie imgid auf, um das Spleißen zu erleichtern.

So fügen Sie Bilder in PHP zur Datenbank hinzu

3. Speichern Sie das Bild in der Datenbank [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);
}
Nach dem Login kopieren

Generierte Daten

So fügen Sie Bilder in PHP zur Datenbank hinzu

5. Datenbankeinträge lesen und Bilder generieren [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);
Nach dem Login kopieren

6 , erfolgreich generierte Bilder

So fügen Sie Bilder in PHP zur Datenbank hinzu

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo fügen Sie Bilder in PHP zur Datenbank hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage